如果我在 win 7 64 位上用 C# 创建一个 dll,然后想在 WinXP 32 位上使用,则存在一些不一致

本文关键字:然后 不一致 WinXP 存在 dll win 创建 如果 一个 | 更新日期: 2023-09-27 18:33:03

我正在尝试在 Win7 64 位上用 C# 开发一个 DLL,然后使用 VB6 WinXP 32 位,但是在 VB6 中添加库时,我收到错误 429,"ActiveX 组件无法创建对象"。所以我想问一下是否有可能与 WinXP 32 位不兼容?

我正在按照这篇文章的步骤创建 DLL:http://www.codeproject.com/Articles/3511/Exposing-NET-Components-to-COM

有人可以帮助我吗?

编辑:

试图做下一站解决我的问题,但没有人能解决:

  1. 在我的winXP上安装所有版本的.NET框架。
  2. 尝试使用 regasm 注册我的 dll 并添加/代码库。
  3. 尝试删除 ie8 并返回到 ie7。
  4. dll 编译为 x86,而不是任何 CPU。

谢谢你,对不起我的英语! :-)

如果我在 win 7 64 位上用 C# 创建一个 dll,然后想在 WinXP 32 位上使用,则存在一些不一致

终于可以解决我的问题了。我必须遵循的步骤是:

  • 在 WinXP-32 位中使用 NET Tools 的命令行中:

    1. 编译网络模块。 csc /target:module test.cs
    2. 生成密钥。 sn -k myDLL.snk
    3. 将密钥与模块连接。 al /out:myDLL.dll myDLL.netmodule /keyfile:myDLL.snk
    4. 将我的 DLL 添加到 GAC 中。 gacutil /i myDLL.dll
    5. 注册我的 DLL。 regasm /codebase /tlb:myDLL.tlb myDLL.dll
  • 在 VB6 中:

    1. 创建一个新的标准 exe。
    2. 在项目 -> 引用
    3. -> 搜索 -> myDLL 中添加引用
    4. .dll
    5. 使用下一个代码:

      Dim tst As myDLL.test Set tst = New myDLL.test tst.sayHello

这就是我所有的朋友!我花了很长时间,但在这里我与你分享!谢谢!