Why do I get an error 0x80029C4A (TYPE_E_CANTLOADLIBRARY) on anything other than my dev box?

0

I've read plenty of answers on here about how to deal with the error 0x80029C4A (TYPE_E_CANTLOADLIBRARY) that say that regsvr is the way to go and checking the registry to make sure that the dll I'm using is properly registered.

I've done all of this on computers other than my dev box but still nothing so here's what I have:

The DLL I'm trying to refer to was developed in VB6 (SP6) with the following settings:

  • Single Threaded
  • Upgrade ActiveX Controls
  • Binary Compatibility

I'm trying to reference it from C# using .NET 4.0 and it all works swimmingly on the machine that I'm developing on, however, when I try to use the project on any other computer that has the dll installed in exact same way I get the error above.

UPDATE:

This dll works fine, as I would want it to, when used from a VB6 application on all of the computers involved.

Can anyone please shed some light onto what is happening here and how I might solve it? I have the VB6 dll and can distribute it with my current project if that would help at all.

Many Thanks,

Gareth

c#
.net
vb6
com-interop
asked on Stack Overflow Feb 24, 2015 by ridecar2 • edited Feb 24, 2015 by ridecar2

1 Answer

0

I worked this one out I think... Foolish me was trying to use the DLL in a background thread and even though it was an STA thread it wasn't my friend.

answered on Stack Overflow Feb 25, 2015 by ridecar2

User contributions licensed under CC BY-SA 3.0