1
在MSVC中,许多字符串函数提供了原始版本,安全版本和版本号strsafe。例如,sprintf
,sprintf_s
和StringCchPrintf
都是等同的,安全性增加(通过一些度量)。_vscwprintf的安全替代方案
现在,我有一些代码,做:
int bufsize = _vscwprintf(fmt, args) + 1;
std::vector<wchar_t> buffer(bufsize);
int len = _vsnwprintf_s(&buffer[0], bufsize, bufsize-1, fmt, args);
要分配正确大小的缓冲区。
在通过strsafe函数查看时,我找到了_vsnwprintf_s
的替代方法,但没有找到_vscwprintf
。 Google的支票似乎没有任何回报。
是否有一种很安全的方式来编写代码,或者我缺少的替代函数,或者混合原始和strsafe函数都可以接受? (没有给出关于当前方式的安全警告,使用PREfast所有规则开启/ w4)