在COM dll上使用tlbexp.exe

Sta*_*ker 5 com dll tlbexp centura

我正在尝试建立Centura和COM .dll 之间的通信.(从http://download.resip.fr下载以进行数据库导入)

Centura需要.tlb文件才能与此组件通信.通常我会regasm /tlb用来生成.tlb,但看到它是一个COM .dll这是不可能的.

我发现我可以使用tlbexp for .NET dll:http://msdn.microsoft.com/en-us/library/hfzzah2c( v = vs.80).aspx

我试过这个,知道它可能会失败(因为我有COM .dll).我收到了这个错误:

TlbExp:错误TX0000:无法加载文件或程序集'file:/// C:\ Windows\system32\ResipBcb.dll'或其依赖项之一.该模块应该包含一个程序集清单.

使用Dependency Walker我注意到两个.dll缺失了.我在网上找到了ieshims.dll,但我找不到wer.dll.看到这个问题.
我不知道tlbexp失败是否与这个丢失的文件有关?

总而言之,我的问题是:如何从这个.dll获得.tlb?我似乎无法找到任何方法从这个COM .dll中提取.tlb.

最好的问候
Clint Cambier

Han*_*ant 9

您尝试做的只适用于.NET程序集,而不适用于本机COM服务器.它们的类型库几乎总是嵌入在DLL中.在Visual Studio中,使用File + Open + File并选择DLL.打开"TYPELIB"节点,右键单击资源(通常为1),导出.将其保存到项目目录中,使用.tlb文件扩展名.


shf*_*301 2

TblExp 和 regasm 仅在 .NET 程序集上有效,您拥有的很可能是标准的非 .NET COM DLL。因此这两个命令在此 DLL 上均无效。

标准 COM 对象是使用regsvr32. 尝试针对您的 DLL 运行它并查看它是否正确注册。如果是这样,您应该会看到它列在 Centura 的 ActiveX 资源管理器中。