__FILE__
および__FILEW__
マクロがパス全体を返す場合にのみ、ファイル名が必要です。
以下を定義しました。
#define __FILE_NAME_ONLY__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
私は次のように使用しています:
#define MY_TRACE( mask, format, ... ) \
GlobalTrace( mask, L"-[" __FILE_NAME_ONLY__ L":" format , __VA_ARGS__ )
次のエラーが表示されます。
エラー C2064: 項は 1 つの引数を取る関数として評価されません
そして、次のマクロを試すと:
#define __WIDE(_String) L ## _String
#define _WIDE(_String) __WIDE(_String)
次のように
#define MY_TRACE( mask, format, ... ) \
GlobalTrace( mask, L"-[" _WIDE(__FILE_NAME_ONLY__) L":" format , __VA_ARGS__ )
エラー C2146 :構文エラー : MY_TRACE マクロを実際に使用しようとすると、識別子 'L' の前に ')'がありません
私は何が欠けていますか?ありがとう