代码之家  ›  专栏  ›  技术社区  ›  chakrit Dutchie432

在TLBIMP加载dll后手动生成ActiveX包装器?

  •  3
  • chakrit Dutchie432  · 技术社区  · 17 年前

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

    我可以通过Visual Studio的添加引用对话框导入它们,该对话框还将自动生成包装器类。(即。 ABCLib AxABCLib )

    我知道我可以通过运行以下命令手动生成主互操作程序集 TLBIMP /primary 但是,除非通过Visual Studio用户界面,否则我无法找到生成ActiveX包装器的方法。

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

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

    1 回复  |  直到 17 年前
        1
  •  7
  •   chakrit Dutchie432    17 年前

    哦。..在查看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存在一些问题。我还不确定如何解决这个问题。

    推荐文章