How to resolve vb6 dll error 800a01ad in c # application

I have a dll that I created from a VB6 project that I am currently using in a C # project. This worked before, but now when I try to go back to the C # project to fix the error, the program gets a COMException message that roughly translates:

Failed to instantiate COM component with CLSID {085E3494-9F78-47D5-B0E6-FA460FD3CBED} from IClassFactory due to the following error: 800a01ad.

So, I'm trying to create a new empty C # project with one line in the main function:

OurNamespace.OurClass foo = new OurNamespace.OurClass();

      

Which fails with the same error.

I registered the dll, but that didn't change the outcome of the problem.

The problem only occurs on the machine I am on, but I am still interested in understanding the problem so that I know how to fix it if it occurs on the client computer.

+2


a source to share


3 answers


This means VB6 Runtime Error 429, "ActiveX cannot create object". It is not your C # code that is failing, it is a VB6 code issue. You can only get something by debugging VB6 code. You will need a VB6 IDE, load the library project, set your C # program as the initial program, and set a breakpoint in the Class_Initialize routine of the class you are trying to create in your C # code.



Assuming you no longer have the tools, error 429 has many potential causes. The most common problem is registration, which is solved by running Regsvr32.exe in the DLL used by the VB6 code.

+5


a source


Try the steps from this kb article to see if it helps http://support.microsoft.com/kb/194801



+1


a source


Compile your VB6 DLL using the Binary Compatibility kit. Otherwise the GUID of your VB6 library will change every time you compile.

+1


a source







All Articles