如何编写 C# 以调用 vb6 代码



我在VB6中有一个activeX DLL,我被要求用它运行一些测试。 由于我不再有 VB6 环境,我认为最好尝试制作一个简单的 C# 程序来调用注册的 COM Dll。 为此,我将DLL复制到C:\Windows\system32中,使用regsrv32注册DLL, 重新启动计算机,此 DLL 已添加到 COM 中,因此我将其添加到我的项目中并从我的项目中引用它。我从中创建了一个对象,并尝试从中调用一个函数,但是除了DllUnusedClass和DllUnused之外,没有任何可用的东西。

您说您已将对 COM dll 的引用添加到您的项目中,现在我将右键单击该引用并选择"在对象浏览器中查看"。这将显示引用的 dll 中可用的类型。

可能是您没有创建适当类型的对象,因此在对象浏览器中查看它应该可以帮助您决定要创建哪种类型的对象。

确保 VB6 项目中要从 .Net 应用程序访问的任何类都将 Instancing 属性设置为 6 - GlobalMultiUse,以便它在作用域中。

我已经在将 Instancing 属性设置为默认5 - MultiUse的情况下测试了您的方案,并遇到了您描述的相同问题。

最新更新