C++ Win32 GUI switch 语句错误
Posted
技术标签:
【中文标题】C++ Win32 GUI switch 语句错误【英文标题】:C++ Win32 GUI switch statement error 【发布时间】:2011-02-13 20:11:39 【问题描述】:我正在使用 Code::Blocks 和 MinGW 编译器制作一个 Win32 GUI 项目。在我的代码的这一行:
switch(LOWORD(WPARAM))
这是单击菜单按钮的switch语句,编译时出现以下错误:
error: expected primary-expression before ')' token
我在其他编程论坛上发现了其他一些此错误的案例,但答案对我的案例没有帮助。如果需要,这里是围绕 switch 语句的代码:
case WM_COMMAND:
switch(LOWORD(WPARAM))
case ID_HELP_ABOUT:
MessageBox(hwnd, "--------------", "-----", MB_OK | MB_ICONINFORMATION);
break;
break;
MessageBox 文本被空白。错误消息是什么意思,我的代码中有什么可以添加(或删除)来防止它发生的吗?
【问题讨论】:
【参考方案1】:问题是
LOWORD(WPARAM)
正在调用 WPARAM type 上的 LOWORD 宏,而不是 WPARAM 类型的变量。这类似于调用
printf(char *);
例如。要解决此问题,请更改代码,使其在 WPARAM 变量上调用 LOWORD。大多数窗口过程都将此 wParam 命名,因此您可能想尝试一下
LOWORD(wParam)
【讨论】:
【参考方案2】:WPARAM
是一个类型而不是变量名,您可能是指wParam
或您的 switch 语句的一些类似变量名:
switch(LOWORD(wParam))
...
【讨论】:
【参考方案3】:我的猜测是wparam
应该是小写的。无法分辨,因为确切的名称在不可见的函数签名中。
【讨论】:
以上是关于C++ Win32 GUI switch 语句错误的主要内容,如果未能解决你的问题,请参考以下文章
将 Unity3D 用作带有 OpenGL 应用程序的 Win32 c++ 的 GUI
cx_freeze 创建 EXE 时没有基于命名的“Win32GUI”错误
在 WM_COMMAND win32 GUI C++ 中处理 WM_LBUTTONDOWN 和 WM_LBUTTONUP
Win32 C++ 中的 GetWindowText() 不起作用
我尝试使用 pip 安装 win32gui,但出现此错误。我正在使用 python 3.8.5,我也有最新版本的 pip