有个在VS2008下正常运行的C程序,移到VC6.0下编译时出现如下错误:
LINK : fatal error LNK1104: cannot open file "comsuppw.lib "
Error executing link.exe.
原因是数据库中缺少名为“comsuppw.lib ”的文件,该文件是VC9中的,对应VC6中的版本应该是“comsupp.lib ”。从网上找到解决办法,在引用头文件的时候改成如下语句:
#if _MSC_VER>1200
#pragma comment(lib,"comsuppw.lib")
#else
#pragma comment(lib,"comsupp.lib")
#endif
判断编译器版本,如果是6.0,就引用“comsupp.lib ”文件,否则,就引用“comsuppw.lib ”文件。
_MSC_VER为编译器的版本值,具体如下:
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
其中MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。