我为DbgPrint定义了一个宏,用于在_DEBUG定义时打印消息
#define MYDBGPRINT(X) #ifdef _DEBUG \
DbgPrint(X) \
#endif
但输出与DbgPrint不同,例如
ULONG id=0;
MYDBGPRINT("the value of the id : %u ",id) //outputs garbage
DbgPrint("the value of the id : %u ",id) //outputs the correct value of id
答案 0 :(得分:0)
您正在尝试使用预处理器来创建预处理器定义。我自己从来没有尝试过,但这似乎是个坏主意,可能无法奏效。而是尝试类似的事情:
#ifdef _DEBUG
#define MYDBGPRINT(X) DbgPrint(X)
#else
#define MYDBGPRINT(X)
#endif
或者在宏的参数数量可变的情况下:
#ifdef DEBUG
#define MYDBGPRINT(...) DbgPrint(__VA_ARGS__)
#else
#define MYDBGPRINT(...)
#endif