views:

12

answers:

0

I have created a simple application to test out migrating some C++ code to .Net.

Part of that test was to include all the libraries that were present in the old app.

When I tried to create an object from .Net it fell over with a missing .dll error.

Looking at the manifest for the dll I have created it is referencing MSVCRT80D.dll and MSVCRT90D.dll. Odd thing is that I'm building everything with the same version of VS so I'm expecting them all to be built against the same version of the CRT.

I have tracked the problem down to a lib which I am building in Visual Studio 2008. If I move the files to another lib I can get the code to run correctly, so I think there may be something in the VCProj file that is telling the linker to request the older version of the CRT.

That being said I could just be missing something obvious.

I suspect the project file may have been from an older version of VS originally, which makes me wonder whether there is something inside it that could be confusing matters.

Has anyone encountered something similar, or can think of any obvious way that the project settings could be influencing which version of the runtime it looks for?

The project has no custom libs defined, there are no _BIND macros to force a version of the runtime.