在c ++中将字符串或wstring传递给宏

时间:2014-05-27 07:07:56

标签: c++ macros

如何将字符串或wstring传递给宏并在宏中打印字符串 我在下面试了一下

#define JUMP_ON_FAILURE_MSG( ErrorCode , Text ) GET_ERROR( ErrorCode, #Text )

#define GET_ERROR( ErrorCode, Text)                                            \
{                                                                              \
    if (ErrorCode < 0)                                                         \
    {                                                                          \
        wprintf(L"Error :%s :[%d]", #Text , error_code);                              \
    }                                                                          \
}

上面的宏不能打印出正确的输出

Error :??????????? :[-5200]  

文字无法打印

我在代码上面调用

 JUMP_ON_FAILURE_MSG(-5200,L"Print error msg");
or
 JUMP_ON_FAILURE_MSG(-5200,"Print error msg");

请帮忙

1 个答案:

答案 0 :(得分:0)

正如其他人已经在评论中指出的那样,你必须写

#define JUMP_ON_FAILURE_MSG( ErrorCode , Text ) GET_ERROR( ErrorCode, Text )
例如

。没有#

有关详细信息,请参阅here