首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++ Win32图形用户界面开关语句错误

C++ Win32图形用户界面开关语句错误
EN

Stack Overflow用户
提问于 2011-02-13 20:11:39
回答 3查看 556关注 0票数 1

我正在使用代码::块和MinGW编译器创建一个Win32图形用户界面项目。在我的代码行中:

代码语言:javascript
运行
AI代码解释
复制
switch(LOWORD(WPARAM))

这是为其单击菜单按钮的switch语句,在编译时我得到以下错误:

代码语言:javascript
运行
AI代码解释
复制
error: expected primary-expression before ')' token

我在其他编程论坛上找到了其他一些关于这个错误的案例,但这些答案对我的案例没有帮助。如果需要,下面是switch语句周围的代码:

代码语言:javascript
运行
AI代码解释
复制
case WM_COMMAND:
    switch(LOWORD(WPARAM))
    {
        case ID_HELP_ABOUT:
            MessageBox(hwnd, "--------------", "-----", MB_OK | MB_ICONINFORMATION);
        break;
    }
    break;

MessageBox文本已被删除。错误消息是什么意思,我的代码中是否有可以添加(或删除)的内容来防止它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-13 20:15:18

问题是

代码语言:javascript
运行
AI代码解释
复制
LOWORD(WPARAM)

正在对WPARAM类型而不是WPARAM类型的变量调用LOWORD宏。这类似于调用

代码语言:javascript
运行
AI代码解释
复制
printf(char *);

例如。要解决此问题,请更改代码,使其在WPARAM变量上调用LOWORD。大多数窗口过程都将其命名为wParam,因此您可能需要尝试

代码语言:javascript
运行
AI代码解释
复制
LOWORD(wParam)
票数 5
EN

Stack Overflow用户

发布于 2011-02-13 20:14:03

WPARAM是一个类型,而不是一个变量名,您的switch语句可能指的是wParam或一些类似的变量名:

代码语言:javascript
运行
AI代码解释
复制
switch(LOWORD(wParam))
...
票数 4
EN

Stack Overflow用户

发布于 2011-02-13 20:14:22

我猜wparam应该是小写的。无法判断,因为确切的名称在不可见的函数签名中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4986561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档