Compiling a MFC app from Visual Studio 2010 to 201

2020-02-07 02:35发布

问题:

My project is compiling and running OK in debug and release modes in VS 2010. Today I tried to compile it with VS 2012 and I got this error :

1>  Generating Code...
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj

I searched for "_MSC_VER" in the code but I could not find any match. Neither could I find "1600" or "1700".

So I am wondering how I can solve this problem.

回答1:

Looks like you're using a .lib from vc2010 in vc2012 (at a guess it looks like a PCRE library). You'll need to recompile all your .libs or run-time link with the DLLs (ie LoadLibrary, GetProcAddress etc.).



回答2:

In Project Properties, select General and then change the "Platform Toolset" setting to "Visual Studio 2010 (v100)." After I did that, my code compiled fine with the original libraries.



回答3:

Looking it up at http://msdn.microsoft.com/en-us/library/b0084kay.aspx It seems that variable holds the compiler's version number. I would think the best way to fix it would be to create a new project in 2012 and add the source files to the new project.



回答4:

NO, all that you need is is check properties of the project. There exist link to old project files. Need open project properties on page ".NET Framework and links" there del all links end add new for new 2012 project files.