2008年12月10日星期三

解放windows下的std min/max

windows在WinDef.h中定义了min/max,可能会屏蔽掉std::min/max。
解决方法:
#define NOMINMAX

cannot open input file kernel32.lib

装了2003和2008,用2008的nmake编译一个msvc文件时,报错提示找不到kernel32.lib。
搜了一下,只有2003的Vc7\PlatformSDK\Lib目录下才有kernel32.lib,而2008下是没有的。难道这也会ref count?
还有用nmake时,E:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下没有msobj80.dll,mspdb80.dll,mspdbcore80.dll,mspdbsrv.exe,要从2008的Common7\IDE目录下copy过来。

真是诸多困扰。所谓的n年经验,一部分就是这样的吧。

snprintf in Windows

windows中通过以下声明
#if WIN32
#define snprintf sprintf_s
#endif
来使用snprintf。