缺省时,VC要求每一个.cpp首先包含 "stdafx.h ",以便编译器生成预编译头(.pch文件),以加快后来在编译时的速度。
如果工程中某个.cpp不是这样(如可移植代码),就必须在工程属性配置中为这个.cpp文件单独设置成“不使用预编译页眉”,这样编译器就不对其使用预编译机制。
很多人使用的图片处理类CxImage,在使用此类时必须设置此项。
Deleting intermediate files and output files for project 'Test2 - Win32 Debug'.
--------------------Configuration: Test2 - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
Test2.cpp
Test2Dlg.cpp
Generating Code...
Linking...
Creating library Debug/Test2.lib and object Debug/Test2.exp
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
Test2.exe - 0 error(s), 0 warning(s)
这个警告对程序的运行没有影响,如果在settings中设定屏蔽,会出现很多负面的影响。
可以在C++文件中加上如下的directive:
#pragma comment (linker, "/NODEFAULTLIB:msvcrt.lib")
就可以了。