【问题标题】:How to Extract TypeLib from a COM exe on Command Line如何在命令行上从 COM exe 中提取 TypeLib
【发布时间】:2011-05-16 03:34:33
【问题描述】:

我最近需要生成一个互操作程序集。经过一番谷歌搜索,我发现了tlbimp.exe。我的下一个问题是我的 COM 库没有附带.tlb 文件。进一步的谷歌搜索显示类型库通常作为资源包含在 exe/dll 中。果然,在 VS2010 中打开 exe 显示它是 lib 类型,然后右键单击我有一个 tlb 文件可以与tlbimp 一起使用。太棒了。

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

【问题讨论】:

    标签: com tlbimp typelib


    【解决方案1】:

    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 exe 更改相当频繁,我们的许多项目都针对 .net 2。在 vs2010 中针对 .net 2 包含互操作 dll 需要一些麻烦,所以我正在研究一些前进的方法。由于我们的项目以单一版本的 COM 库为目标,DLL Hell 的风险很低,但我感谢您强调风险。干杯,
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多