我被交给了一个'年份'使用VS6 C ++构建的项目尝试在VS2013中运行(无需进行功能更改,只需构建和运行)。
我无法工作的最后一部分是该解决方案包含一个MetaDASTest.exe,它在共享DLL中使用MFC,运行时库设置为多线程DLL(/ MD)。
构建MetaDASTest.exe时,它使用MetaLibrary,它是一个静态库(.lib),不使用MFC(使用标准Windows库),运行时库设置为多线程(/ MT)。
构建MetaDASTest.exe项目时给出的输出如下:
Searching ..\..\Deployment\Release\MetaLibrary.lib:
Found "public: __thiscall Unipower::MetaLibrary::CSchemaSingleton::~CSchemaSingleton(void)" (??1CSchemaSingleton@MetaLibrary@Unipower@@QAE@XZ)
Referenced in MetaDASTest.obj
Referenced in MetaDASTestDlg.obj
Loaded MetaLibrary.lib(SchemaSingleton.obj)
MetaLibrary.lib(SchemaSingleton.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in MetaDASTestDlg.obj
这一切都在VS6中构建而没有修改......为什么RuntimeLibrary必须在VS2013中调用exe和被调用的lib之间进行匹配?我是否错过了使用升级向导未正确设置的项目属性设置?