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

There is some inconsistency if I create a dll in C# on win 7 64bit and then want to use on WinXP 32bit?

我试图在 Win7 64 位上用 C# 开发一个 DLL,然后使用 VB6 WinXP 32 位,但是当在 VB6 中添加库时,我得到错误 429,"ActiveX component cant create object"。所以想问问有没有可能和WinXP 32bit不兼容?

我正在按照以下 post 的步骤创建 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。

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

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

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

    1. 编译 NET 模块。 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. 在项目中添加引用 -> 引用 -> 搜索 -> myDLL.dll
    3. 使用下一个代码:

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

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