Search code examples
.netdllvb6activex

DllRegisterServer entry point was not found - when registering a Vb.NET DLL?


I wrote a dll in vb.net that calls a web service, consumes the data returned then passes results back to the calling program. I originally wrote in in VS 2008, on windows 7 (x64). Tested it in a vb 6 program also written on windows 7 and everything worked. The vb6 program got the data and I could move on.

The real world for me though is to use this dll inside another dll written in vb 6. I get the error "ActiveX component can't create object" when I get to the code

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

I've recompiled my code on windowsXP (x86) and recopied over the .dll and .tlb.

When I try to register the dll I get an error: 'DllRegisterServer entry point was not found'. The .tlb seems to register fine in VB as far as adding a reference to it and the intellesense works too.

Does anyone have any ideas what I need to do to get this working?


Solution

  • You don't register .NET assemblies with Regsvr32.exe. You have to use Regasm.exe, you'll find the tool in the framework directory. Use the /codebase option if you don't put the assembly in the GAC. You shouldn't on a dev machine.

    This worked okay before probably because you let Visual Studio do it for you.