【问题标题】:Manually generate ActiveX wrapper after TLBIMP-ed dlls?在 TLBIMP-ed dll 之后手动生成 ActiveX 包装器?
【发布时间】:2010-10-01 13:27:05
【问题描述】:

我有几个 ActiveX 组件需要从 C# 项目中访问。

我可以通过 Visual Studio 的添加引用对话框导入它们,该对话框也会自动生成包装类。 (即ABCLibAxABCLib

我知道我可以通过在每个单独的 OCX 文件上运行 TLBIMP /primary 来手动生成主互操作程序集,但我找不到生成 ActiveX 包装器的方法,除非我通过 Visual Studio 用户界面执行此操作。

是否有在 .NET SDK 中生成 ActiveX 包装器的命令行版本?

我想从手动从 TLBIMP 获得的 PIA 生成AxABCLib 版本。 (即设置命名空间、输出 dll 文件名等)有可能吗?

【问题讨论】:

  • 所以你回答了你自己的问题,这是否意味着它不是一个好的问题或答案?为什么不留下您的问题?

标签: .net com activex tlbimp


【解决方案1】:

哦……查看了TLBIMP所在的文件夹后找到了。

它叫AxImp

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\AxImp.exe

所以基本上,要在您自己的自定义命名空间中生成 PIA DLL:

  1. 注册您的 OCX

    regsvr32 abc.ocx

  2. 通过运行为您的 ocx 生成一个强名称密钥对

    sn -k

  3. 运行 TLBIMP 并指定所需的命名空间

    tlbimp abc.ocx /primary /keyfile:abc.snk /out:abc.dll /namespace:MyNamespace

  4. 在 ocx 上运行 AXIMP 并使用 rcw 开关来使用您自己手动生成的 PIA DLL。

    aximp abc.ocx /source /rcw:abc.dll

应该可以的。

然而,导入古代 TLB 存在一些问题。我还不确定如何解决这个问题。

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多