Problem with accessing a vs2003 DLL from a vs2005 application

I have a major problem.

I have only the header files, the lib and DLL from a vs2003 project.
I am calling a function exported from the DLL from a vs2005 application.
And C++ templates are used everywhere.

From the following thread, I found out the data of the template functions are not compatible:
http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=136960&SiteID=1

I wonder if anybody has some help for me. The source for the vs2003 project is not available. And I do not have access to vs2003 to downgrade the application.

Thanks.


Answer this question

Problem with accessing a vs2003 DLL from a vs2005 application

  • debug13

    This is most likely related to this DLL exporting a class that subclasses Std C++ Library templated class or has a member variable of this type; or this DLL exports a function that passes a parameter of std C++ library type. Root cause of this issue is that passing VC Libs classes across DLL boundary may cause troubles on upgrades if it is not possible to recompile all code of a solution.

     If I were you, I would remove this DLL from my app because I do not have sources for it. If I had to use it,  I would build a wrapper DLL in VS2003 that correctly marshals data from app built in VS2005 to DLL built in VS2003. This obviously impacts performance of the app, but I cannot think of another workaround.

    Nikola

    VC++



  • abohmza

    Thanks for the answer. I am unable to remove the DLL because it is the core component of the application. DLL was created by a contractor, but no source was given, just header files.

    I ended up having to downgrade back to VS2003 to get back on schedule.

  • Problem with accessing a vs2003 DLL from a vs2005 application