我正在尝试在 Win7 64 位上用 C# 开发一个 DLL,然后使用 VB6 WinXP 32 位,但是在 VB6 中添加库时,我收到错误 429,"ActiveX 组件无法创建对象"。所以我想问一下是否有可能与 WinXP 32 位不兼容?
我正在按照这篇文章的步骤创建 DLL:http://www.codeproject.com/Articles/3511/Exposing-NET-Components-to-COM
有人可以帮助我吗?
编辑:
我试图做下一站解决我的问题,但没有人能解决:
- 在我的winXP上安装所有版本的.NET框架。
- 尝试使用 regasm 注册我的 dll 并添加/代码库。
- 尝试删除 ie8 并返回到 ie7。 将
- dll 编译为 x86,而不是任何 CPU。
谢谢你,对不起我的英语! :-)
终于可以解决我的问题了。我必须遵循的步骤是:
-
在 WinXP-32 位中使用 NET Tools 的命令行中:
- 编译网络模块。
csc /target:module test.cs
- 生成密钥。
sn -k myDLL.snk
- 将密钥与模块连接。
al /out:myDLL.dll myDLL.netmodule /keyfile:myDLL.snk
- 将我的 DLL 添加到 GAC 中。
gacutil /i myDLL.dll
- 注册我的 DLL。
regasm /codebase /tlb:myDLL.tlb myDLL.dll
- 编译网络模块。
-
在 VB6 中:
- 创建一个新的标准 exe。 在项目 -> 引用
- -> 搜索 -> myDLL 中添加引用 .dll
使用下一个代码:
Dim tst As myDLL.test Set tst = New myDLL.test tst.sayHello
这就是我所有的朋友!我花了很长时间,但在这里我与你分享!谢谢!