0

Visual Studio 2008ソリューションのリリースビルドを実行すると、次のようなエラーが発生します。

エラーC2059:構文エラー:'、'

これは私が通常使用する方法ですTRACE

TRACE(_T("My error message.\r\n\tError: %d\r\n\tFile: %s\r\n\tLine: %d\r\n"), ::GetLastError(), __WFILE__, __LINE__);

5つのパラメータで使用する場合もあります。

TRACEリリースビルド用に完全にコンパイルすることを想定していました。コンパイルを完了するには何をする必要がありますか?ありがとう。

4

2 に答える 2

2

マクロの定義が__WFILE__問題の原因です。これを解決するには2つの方法があります。まず、次のようにマクロを定義できます。

http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx

マクロをでラップしないことに注意してください#ifdef _DEBUG。これは、対応する__FILE__マクロがリリースモードでも削除されないため、意味があります。

ただし、そのドキュメントはVS2005用です。新しいバージョンのドキュメントから削除されました。それがあなたがこれをしたいかもしれない理由です:

_T(__FILE__)
于 2010-12-14T17:25:41.413 に答える
0

まず第一に、それ__FILE__は私が知る限りではなく、__WFILE__です。そのため、カンマエラーが発生します。プリプロセッサがそれを見つけることができないので。

次に、なぜ各TRACEに最後の3つのパラメーターを書き込むのですか?TRACEはマクロですよね?

したがって、次のように定義できます:(定義__WFILE__マクロも参照してください)

#define FULL_TRACE   //define FULL_TRACE here
#define __WFILE__  L##__FILE__ //since __WFILE__ is not a real macro in MCVC++
#define TRACE(msg) FULL_TRACE(msg, ::GetLastError(), __WFILE__, __FUNCTION__, __LINE__)

今、あなたはこのようにトレースすることができます

TRACE("Error in I/O file")

そして、あなたは完了です!

于 2010-12-14T17:24:34.610 に答える