I have ported VB6 code to VB.Net using the Visual Studio 2008 conversion wizard. The ported code compiles correctly.
I have checkd the compiler option to register for COM interop on project properties. On building the project I get the DLL and TLB file.
I have registered the assembly using following command
regasm myLib.DLL /tlb:myLib.tlb
After that I have GACed the assembly using
gacutil /i myLib.DLL
Now, the VB code that was consuming the DLL …
Dim myObject
Set myObject= CreateObject("myLib.MyObject")
..throws an error –
Runtime Error 429, ActiveX componenet cant create object.
WHat do I need to do to get this working correctly?
One thing to check that has caught me out in the past:-
If your constructor in the .NET side throws an error (whether it is handled or not) and you are creating your object in VB6 using
CreateObject, you receive aRuntime Error 429, ActiveX componenet cant create object.During development you are better off adding a reference to your managed project and using:
That way you can at least see that an error has been thrown on the managed side.