我正面臨一個奇怪的問題。我正在使用sprintf或swprintf根據構建定義使用或不使用unicode。我已經包裹在我自己的函數這些函數是這樣的:從單獨的庫調用swamp失敗
int mysprintf(MCHAR* str,size_t size, const MCHAR* format, ...)
{
#ifdef MYUNICODE
return swprintf(str, size, format);
#else
return snprintf(str, format);
#endif
}
這些功能是在一個字符串類,這是一個獨立的項目,並編譯成一個lib。我在另一個程序中使用它。現在如果我使用mysprintf()
msprintf(str,10, _M("%d,%d"),height,width);
我在字符串緩衝區中得到了一些垃圾值。但是如果我直接從程序中調用swprintf函數,那麼它會工作得很好。我已經在構建中定義了UNICODE,並且swprintf確實調用了函數,但它填充了一些垃圾值。我不明白髮生了什麼問題。
感謝 阿米特
感謝Magnus,這清除了這個概念。 – amit 2009-05-21 10:34:23