我面临一个奇怪的问题。我根据构建定义使用 sprintf 或 swprintf 是否有 unicode。我已经将这些函数包装在我自己的函数中,如下所示:
int mysprintf( MCHAR* str,size_t size, const MCHAR* format, ... )
{
#ifdef MYUNICODE
return swprintf( str, size, format);
#else
return snprintf( str, format);
#endif
}
这些函数位于 String 类中,该类是一个单独的项目,并被编译为 lib。我在另一个程序中使用它。现在如果我使用 mysprintf()
msprintf(str,10, _M("%d,%d"),height,width);
我在字符串缓冲区中得到了一些垃圾值。但是,如果我直接从程序中调用 swprintf 函数,它就可以正常工作。我在构建中定义了 UNICODE,并且确实调用了函数 swprintf,但它填充了一些垃圾值。我不明白出了什么问题。
谢谢阿米特