找不到DllRegisterServer入口点 - 注册Vb.NET DLL时?

时间:2011-03-22 18:06:17

标签: .net dll vb6 activex

我在vb.net中写了一个调用Web服务的dll,使用返回的数据然后将结果传递回调用程序。我最初是在VS 2008中写的,在Windows 7(x64)上。在Windows 7上编写的vb 6程序中进行了测试,一切正常。 vb6程序得到了数据,我可以继续前进。

对我而言,现实世界是在vb 6中编写的另一个dll中使用此dll。当我到达代码时,我收到错误“ActiveX组件无法创建对象”

Dim myWebService as webService.ComClass1
Set myWebService = New webService.ComClass1

我在windowsXP(x86)上重新编译了我的代码并重新编写了.dll和.tlb。

当我尝试注册dll时出现错误:'找不到DllRegisterServer入口点'。 .tlb似乎在VB中注册正常,只要添加对它的引用,并且intellesense也可以。

有没有人有任何想法,我需要做些什么来使这个工作?

2 个答案:

答案 0 :(得分:4)

您没有使用Regsvr32.exe注册.NET程序集。您必须使用Regasm.exe,您将在框架目录中找到该工具。如果未将程序集放入GAC,请使用/ codebase选项。你不应该在开发机器上。

这可能之前没问题可能是因为你让Visual Studio为你做了。

答案 1 :(得分:0)

您不能像VB6 dll一样注册.net DLL。 .NET DLL里面没有tlb,它是独立的。

相反,在.net dlls上使用REGASM。它在你的计算机上,但是你需要进行搜索才能找到它,因为默认情况下它不在路径上。