最近碰到一个一直以来没有注意的问题,我习惯地使用 wsprintf 来格式化输出字符串,可是,最近在一次收到 http 请求回来的数据后,只截取到了大约一半的字符串。

很奇怪的是,用 lstrcpy 来把结果复制并生成新的字符串,却可以完整的复制。

仔细查了一下 MSDN,发现原来有这么一句话:

To use buffers larger than 1024 bytes, use _snwprintf. For more information, see the documentation for the C run-time library.

原来,wsprintf 的缓冲区有 1024 个字符串的上限,看来以后要注意这个问题了。