【问题标题】:Secure Version of wsprintf()?wsprintf() 的安全版本?
【发布时间】:2015-10-19 10:47:03
【问题描述】:

就像我们有 _stprintf 的安全版本,即 stprintf_s 用于 hp fortify bufferoverflow 警告,那么我们可以用什么来代替wsprintf()?我试过wsprintf_s,它不起作用。

谁能解释一下_stprintfwsprintf的区别?或者我们可以使用stprintf_s 作为wsprintf 的安全版本。

【问题讨论】:

标签: c++ windows msvcrt fortify crt


【解决方案1】:

选项记录在wsprintf:

注意不要使用。请考虑改用以下函数之一:StringCbPrintfStringCbPrintfExStringCchPrintfStringCchPrintfEx。请参阅安全注意事项。

如果您希望使用更类似于wsprintf 的安全功能,请使用swprintf_s_snwprintf_s

_stprintf 是一个预处理器宏,它将调用映射到 ANSI 或 UNICODE 版本。映射表记录在sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_stprintf sprintf sprintf _swprintf

_stprintf_s的映射表:

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_stprintf_s sprintf_s sprintf_s swprintf_s

【讨论】:

    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多