在TLBIMP-ed dll之后手动生成ActiveX包装器?

时间:2009-01-15 09:19:16

标签: .net com activex tlbimp

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

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

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

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

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

1 个答案:

答案 0 :(得分:7)

哦......在查看TLBIMP所属的文件夹后找到它。

它被称为AxImp

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

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

  1. 注册您的OCX

    regsvr32 abc.ocx

  2. 通过运行

    为您生成强名称密钥对

    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

  5. 应该这样做。

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