Xcodeのみ(Visual Studioは問題ありません)、va_argsを使ってラッパー関数に入れようとするとswprintf breakが表示されています。va_argsはXcodeのワイド文字列関数(swprintf)を破ります
簡単な例:
void test(wchar_t *a_buffer, int a_buffer_size, const wchar_t* a_format, ...)
{
va_list args;
va_start(args, a_format);
::swprintf(a_buffer, a_buffer_size, a_format, args);
va_end(args);
}
double value = 1.0;
wchar_t text[32];
::swprintf(text, 32, L"%f", value); // this works (text=L"1.0000")
test(text, 32, L"%f", 30.0); // this does not work (text=L"0.0000")
すべてのヘルプ感謝、それはかなりスタンパです。私は問題がXcodeのいくつかの奇妙なものであると仮定しています。
私はすでに、この質問に示唆されているように、ロケール設定とファイルプロパティを混乱させていますが、変更はありません。別の問題のようです。
ありがとうございました。
'swprintf()'はvarargs引数をとっていません。あなたは 'vswprintf()'を使っていることを意味します。 – mah
vswprintf()は本当に必要なものです、ありがとうございます。 –