如何从 .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 文件?
通过注册的 TLB 从 python 访问未注册的 COM 对象