0
votes

I have a COM Callable Wrapper that has worked up until now.

Now I get a "user defined type not defined" error when I try to compile my VB6 application which depends on it. Things that have changed include the COM Callable Wrapper being moved from .Net Framework 2 to 4 and I am using VS2013 now instead of VS2010. There are some changes to code but none which I can see as being responsible.

When I look at the generated typelib in oleview.exe and compare it to the previous version I see the the namespace (with underscores) has been prepended to two of my coclasses so that I now have coclass CompanyName_Compatibility_Field where before I had just coclass Field which I assume is the cause of my problems.

I have always had a reference to classic ADODB primary interop assembly but now i have an importlib("msado15.dll"); statement in the generated typelib where previously I did not and the typelib now includes enum definitions for a number of ADODB enum types where previously it did not.

Is ADODB the reason why the namespace is now being prepended to my Field object and is there a way I can prevent this and exclude ADODB stuff from the typelib?

1

1 Answers

0
votes

I changed the Embed Interop Types property for the ADODB reference and an Active Reports reference (which also has a Field object) and now my VB6 application compiles. I confess I was unaware of this property. It must have changed when I re-added some references after moving from framework 2 to 4.