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

cha*_*rit 3 .net com activex tlbimp

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

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

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

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

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

cha*_*rit 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

应该这样做.

然而,进口古代TLB存在一些问题.我不知道如何解决这个问题.