C ++预处理程序指令作为函数参数

时间:2014-03-28 11:18:02

标签: c++ preprocessor-directive

我开始使用电子书学习C ++并且被几行打断,我认为这有点过时了。无论如何,我想要做的是使用预处理器指令作为函数参数,它不起作用:

#define TitleLabelId 1000;

//....

hTitleText = CreateWindow(L"STATIC",
                          L"Test Text",
                          WS_VISIBLE | WS_CHILD,
                          0, 0,
                          300, 20,
                          hWnd,
                          (HMENU)TitleLabelId,
                          hInst,
                          NULL);

这给了我一个编译错误,这会给我一个正确的结果:

HMENU hm = (HMENU)TitleLabelId;

hTitleText = CreateWindow(L"STATIC",
                          L"Test Text",
                          WS_VISIBLE | WS_CHILD,
                          0, 0,
                          300, 20,
                          hWnd,
                          (HMENU)TitleLabelId,
                          hInst,
                          NULL);

我试图外包标签文本,但不幸的是它没有使用以下指令:

#define TitleText L"Blob Color War";

是否有我监督的语法?提前谢谢!

2 个答案:

答案 0 :(得分:4)

之后使用#define而不使用分号:

#define TitleLabelId 1000;
                      // ^

#define TitleLabelId 1000

否则它将在prprocessing期间展开,但在参数列表中是错误的。

答案 1 :(得分:4)

#define TitleText L"Blob Color War";

我认为;正在制造一些问题。删除它会解决它。

#define TitleText L"Blob Color War"