我在Delphi中开发了一个COM库。当我尝试添加参考"在Visual Studio项目中,VS崩溃了。我尝试通过tlbimp.exe构建Interop程序集,但它失败了:
TlbImp:错误TI1000:类型库导入器遇到错误 意外异常:System.AccessViolationException - 尝试 读或写受保护的内存。这通常表明其他 记忆已腐败。
有趣的是,当我"添加参考"到Web应用程序(或Web站点)项目,它成功生成Interop dll并添加引用。
了解Web应用程序如何使用tlbimp.exe非常重要,因为我想自定义Interop生成。
答案 0 :(得分:1)
您的Delphi代码中很可能出现错误。您可以在Delphi中调试COM库,如下所示:
选择run->参数...
(别介意这说明project28.exe;它对Projectx.dll的作用相同)
我通常使用COM开发Excel插件
在这种情况下,我的主机应用程序是Excel.exe
。
当您输入此信息后,您将能够运行库。
当你这样做Delphi将启动主机应用程序,并等到它以某种方式调用你的库
如果您设置了任何断点,Delphi将暂停操作并允许您进行调试。
因为您知道在C#代码中调用了哪些函数,所以不应该很难看到设置第一个断点的位置。
德尔福也将打破任何例外。