(かなり) 古い C コードを VS2010 に変換しています。マルチバイト オプションを使用してプログラムをコンパイルすると、すべて正常に動作しますが、UNICODE に変換する必要があります。
文字列の会話に関連するエラー メッセージが大量に表示されます (ただし、異常ではありません)。私の問題は、(UNICODE のため) wchar 文字列を操作する必要があるという事実に関連していますが、標準の char 値も保持する必要があります (プログラムは標準の ascii コードでファイルにデータを書き込む必要があります)。
より明確にするために、Windows での作業には UNICODE が必要ですが、ファイルは ascii 形式で保存する必要があります。多くの場所でエラーが発生するため、ここにその質問を掲載することにしました。
somoene が、この種の問題のベスト プラクティスを提案してくれませんか?
前もって感謝します!
編集:
ええと、私は C/C++ の専門家ではありません。これは私の最初の大規模なプロジェクトです。次のような最初の回答からあなたの提案を試しました:}
{
TCHAR* strz1=_T("%u blocks converted.");
if (n>0)
{
sprintf(str,strz1,n)
}
else
TCHAR* strz2=_T("No blocks found!");
sprintf(str,strz2);
TCHAR* strz3=_T("Status");
MessageBoxW(hwnd,str,strz3,MB_OK|MB_ICONINFORMATION);
return(fe);
}
有名なエラーが発生しています:
エラー C2664: 'sprintf': パラメーター 2 を 'TCHAR *' から 'const char *' に変換できません
エラー C2664: 'MessageBoxW': パラメーター 2 を 'char [32]' から 'LPCWSTR' に変換できません