com - 如何在命令行上从 COM exe 中提取 TypeLib

标签 com tlbimp typelib

我最近需要制作一个互操作程序集。经过一番谷歌搜索后,我发现 tlbimp.exe .我的下一个问题是我的 COM 库没有提供 .tlb文件。进一步的谷歌搜索显示,类型 lib 通常作为资源包含在 exe/dll 中。果然,在 VS2010 中打开 exe 显示它的类型是 lib,稍后右键单击我有一个 tlb 文件可用于 tlbimp .惊人的。

然而,这不是一个很好的过程。我将来是否需要这样做,有没有办法使用命令行从 .exe 中提取类型库(.tlb 文件)?

最佳答案

Tlbimp.exe 可以很好地处理 EXE 中的类型库资源。例如:

C:\temp\temp>tlbimp c:\windows\system32\wiaacmgr.exe
Microsoft (R) .NET Framework Type Library to Assembly Converter 3.5.30729.1
Copyright (C) Microsoft Corporation.  All rights reserved.

Type library imported to WIAACMGRLib.dll

顺便说一句,自动化这是相当冒险的。类型库非常等同于程序集引用。如果它改变了,你想知道它。不仅仅是因为您可能必须修改互操作代码并重新测试它,DLL Hell 也在敲您的门。

关于com - 如何在命令行上从 COM exe 中提取 TypeLib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4284797/

相关文章:

c++ - 在运行时加载和使用类型库 (.tlb)

delphi - 如何在 Delphi 项目中拥有多个类型库?

c++ - 将 dll 引用添加到托管 C++ 项目时出现编译器错误

c++ - 通过 .net 互操作类调试 COM C++ 代码

c++ - 从 COM TypeLib 自动生成的 C++ 类不会在方法中返回 SAFEARRAY

c# - 如何加载类型库以在 C# 中解析它?

c# - 静态 C# 对象导致 : COM object that has been separated from its underlying RCW cannot be used

c++ - 当我的程序终止时,我应该总是在 COM 指针上调用 Release 吗?

com - 使用 WinHttp.WinHttpRequest 查找检索到的二进制数据的大小

c++ - OLE:多个 OLE 对象的共享 IStorage?