MSVCでは、多くの文字列関数が元のバージョン、安全なバージョン、およびstrsafeバージョンを提供します。たとえば、、、sprintf
およびsprintf_s
はStringCchPrintf
すべて同等であり、安全性が向上します(ある程度のメトリック)。
今、私はそれを行うコードを少し持っています:
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
。グーグルのチェックは何も返さなかったようです。
そのコードのビットを書くためのstrsafeな方法、または私が欠けている両方の代替関数がありますか、または元の関数とstrsafe関数を混合することは許容されますか?(現在の方法については、すべてのルールがPREfastの/ w4で、安全上の警告は表示されません)