【发布时间】:2014-12-15 21:59:47
【问题描述】:
我只需要__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__ )
当我实际尝试使用 MY_TRACE 宏时,我得到:error C2146: syntax error : missing ')' before identifier 'L'
我错过了什么?谢谢
【问题讨论】:
标签: c++ windows macros predefined-macro