在COM dll上使用tlbexp.exe

在COM dll上使用tlbexp.exe,dll,com,tlbexp,centura,Dll,Com,Tlbexp,Centura,我正在尝试设置和COM.dll之间的通信。(从下载以进行数据库导入) Centura需要一个.tlb文件才能与此组件通信。通常我会使用regasm/tlb生成.tlb,但由于它是COM.dll,所以这是不可能的 我发现我可以将tlbexp用于.NET dll: 我尝试过这个,知道它可能会失败(因为我有COM.dll)。我收到了这个错误: TlbExp:错误TX0000:无法加载文件或程序集的file:///C:\Windows\system32\ResipBcb.dll'或其依赖项之一。模块应包

我正在尝试设置和COM.dll之间的通信。(从下载以进行数据库导入)

Centura需要一个.tlb文件才能与此组件通信。通常我会使用
regasm/tlb
生成.tlb,但由于它是COM.dll,所以这是不可能的

我发现我可以将tlbexp用于.NET dll:

我尝试过这个,知道它可能会失败(因为我有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

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


使用
regsvr32
注册标准COM对象。试着在DLL上运行它,看看它是否正确注册。如果是,您应该在Centura的ActiveX explorer中看到它的列表。

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

我后来注意到TlbExp只在.NET程序集上工作。TlbImp在COM.dll上工作。这让我感到困惑。我知道,Regsvr32不起作用。我将尝试Hans Passant的建议。我无法再编辑我的评论,我的意思是我已经尝试了regsvr32,但它不起作用。我会再试一次,试试也无妨。