在 TBIMP 编辑的 dll 之后手动生成 ActiveX 包装器?

发布于 2024-07-11 02:46:11 字数 418 浏览 7 评论 0原文

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

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

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

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

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

I have several ActiveX components that needed to be accessed from a C# project.

I can import them via Visual Studio's add reference dialog, which will also automatically generate wrappers class. (i.e. ABCLib and AxABCLib)

I know that I can generate the primary interop assembly manually by running TLBIMP /primary on each individual OCX file but I could not find a way to generate the ActiveX wrapper unless I do it via Visual Studio user interface.

Is there a command-line version that generate the ActiveX wrapper in the .NET SDK?

I want to generate the AxABCLib version from the PIA I got from TLBIMP manually. (i.e. setting namespaces, output dll filenames etc.) Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娇俏 2024-07-18 02:46:11

哦...查看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. 运行 TBIMP 并指定所需的命名空间

    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 存在一些问题。 我还不知道如何解决这个问题。

Oh... found it after looking at the folder where TLBIMP belongs.

It's called AxImp.

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

So basically, to generate a PIA DLL in your own customized namespace:

  1. Register your OCX

    regsvr32 abc.ocx

  2. Generate a strong name key pair for you ocx by running

    sn -k

  3. Run TLBIMP and specify the desired namespace

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

  4. Run AXIMP on the ocx and use the rcw switch to use your own manully generated PIA DLL.

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

That should do it.

There are however some problems with ancient TLBs being imported. I am not sure how to fix that yet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文