如何从 .exe 中提取 .tlb

Posted

技术标签:

【中文标题】如何从 .exe 中提取 .tlb【英文标题】:How can I extract a .tlb from a .exe 【发布时间】:2016-01-14 12:48:45 【问题描述】:

我有一个想要使用的 COM 应用程序,但我只有该应用程序的 .exe。有没有办法从那个.exe中提取.tlb? 我尝试使用 Visual Studio 命令提示符中的tlbexp filename.exe,但出现错误,我不知道为什么:TlbExp : error TX0000 : Exception of type 'System.OutOfMemoryException' was thrown. 我正在使用带有 C++ 的 Visual Studio 2012。

编辑:

.exe 是用 C++ 编写的,后来我看到 tlbexp 是用于 .NET 的。这就是它不起作用的原因,很抱歉造成混乱。 我仍然需要找到一种从 C++ .exe 中提取 .tlb 的方法。

【问题讨论】:

tlbexp 只能用于 .Net 可执行文件,是这样吗?如果不使用 oleview 之类的工具来查看 typelib 是否作为资源嵌入 在 Visual Studio 中,使用“打开方式...”选择资源编辑器打开 EXE 文件。在那里,找到类型库资源条目并使用“导出...”保存到文件中。这将是您的 TLB 文件。 另外,同样可以使用标准文件资源管理 API 以编程方式完成,LoadResource 和朋友,然后是 WriteFile 您使用了错误的实用程序,请改用 Tlbimp.exe。 “打开方式”:blogs.msdn.microsoft.com/zainnab/2010/08/21/open-with 截图 2 和 3 【参考方案1】:

我已经使用了这个实用程序https://www.nirsoft.net/utils/resources_extract.html 只需检查类型库选项即可。 它现在适用于所有情况,但适用于许多 dll 和 exe

【讨论】:

以上是关于如何从 .exe 中提取 .tlb的主要内容,如果未能解决你的问题,请参考以下文章

RegAsm.exe 和 regsvr32 有啥区别?如何使用 regsvr32 生成 tlb 文件?

从 .EXE 中提取 .PNG?

通过注册的 TLB 从 python 访问未注册的 COM 对象

如何在程序启动之前添加然后从 C# 中提取 Dll? [复制]

如何从exe文件中抽取ico文件?

iexpress 提取文件,然后从 exe 中运行 vbs 引用文件