【发布时间】:2012-01-01 11:10:04
【问题描述】:
对于新项目,我应该更喜欢哪个功能? 来自 strsafe.h 或 sprintf_s 的 StringCchVPrintf
【问题讨论】:
对于新项目,我应该更喜欢哪个功能? 来自 strsafe.h 或 sprintf_s 的 StringCchVPrintf
【问题讨论】:
如果您使用 C 编写代码,我建议使用 snprintf(因为 snprintf 符合 C99 标准)。
如果您使用 C++ 编写代码,请考虑使用 C++ 标准库中的 std::ostringstream。
snprintf 和 ostringstream 应该在许多系统上都可用,包括非 Windows 系统。
我通常建议尽可能为标准编码。它将简化您的软件移植到其他系统的过程。尽量避免(或至少小心)使用仅在 WinApi 中可用的函数(AFAIK,没有定义它的标准规范;它只是一个专有实现,大多数其他系统都没有)。
如果您的应用程序有图形界面,您可以考虑使用跨平台工具包库,例如Qt:它为您提供了一个抽象(Qt API),它应该可以在多个操作系统上运行。
【讨论】:
StringCchPrintf 和_sprintf_s 都不是。
_sprintf_s 存在在那里...... :-)