Tlbimp生成Interop Dll失败

时间:2014-05-03 20:04:06

标签: c# delphi com com-interop tlbimp

我在Delphi中开发了一个COM库。当我尝试添加参考"在Visual Studio项目中,VS崩溃了。我尝试通过tlbimp.exe构建Interop程序集,但它失败了:

  

TlbImp:错误TI1000:类型库导入器遇到错误   意外异常:System.AccessViolationException - 尝试   读或写受保护的内存。这通常表明其他   记忆已腐败。

有趣的是,当我"添加参考"到Web应用程序(或Web站点)项目,它成功生成Interop dll并添加引用。

了解Web应用程序如何使用tlbimp.exe非常重要,因为我想自定义Interop生成。

1 个答案:

答案 0 :(得分:1)

您的Delphi代码中很可能出现错误。您可以在Delphi中调试COM库,如下所示:

enter image description here 选择run->参数...

enter image description here

(别介意这说明project28.exe;它对Projectx.dll的作用相同)

我通常使用COM开发Excel插件 在这种情况下,我的主机应用程序是Excel.exe

当您输入此信息后,您将能够运行库。
当你这样做Delphi将启动主机应用程序,并等到它以某种方式调用你的库 如果您设置了任何断点,Delphi将暂停操作并允许您进行调试。

因为您知道在C#代码中调用了哪些函数,所以不应该很难看到设置第一个断点的位置。

德尔福也将打破任何例外。