我在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也可以。
有没有人有任何想法,我需要做些什么来使这个工作?
答案 0 :(得分:4)
您没有使用Regsvr32.exe注册.NET程序集。您必须使用Regasm.exe,您将在框架目录中找到该工具。如果未将程序集放入GAC,请使用/ codebase选项。你不应该在开发机器上。
这可能之前没问题可能是因为你让Visual Studio为你做了。
答案 1 :(得分:0)
您不能像VB6 dll一样注册.net DLL。 .NET DLL里面没有tlb,它是独立的。
相反,在.net dlls上使用REGASM。它在你的计算机上,但是你需要进行搜索才能找到它,因为默认情况下它不在路径上。