c - CMAKE资源文件中WINAPI的对话框资源返回语法错误

原文 标签 c winapi cmake dialog resources

我试图通过资源文件将DialogBox加载到我的WIN32应用程序中,但是CMake抛出语法错误。

我的资源文件中的代码:

#include "resource.h"
IDD_ABOUTDIALOG DIALOG DISCARDABLE  0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&OK",IDOK,174,18,50,14
    PUSHBUTTON      "&Cancel",IDCANCEL,174,35,50,14
    GROUPBOX        "About this program...",IDC_STATIC,7,7,225,52
    CTEXT           "An example program",
                    IDC_STATIC,16,18,144,33
END


将加载资源的C代码:

int ret = DialogBox(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDD_ABOUTDIALOG), hwnd, AboutDlgProc);


资源头文件:

#ifndef WIN32_RESOURCE_H
#define WIN32_RESOURCE_H

#define IDD_ABOUTDIALOG 101

#endif //WIN32_RESOURCE_H


CMake打印的错误消息:


  Resource.rc:3:语法错误


我在CLION(C11 Standard)中使用MinGW

最佳答案

通常,在系统头文件中定义诸如窗口样式(STYLE)和对话框样式(WS_)之类的DS_参数。

因此,要在使用这些值之前添加#<windows.h>,您必须#include编辑可能或相似的头文件。

相关文章:

.net - 如何在vb.net中闪烁/闪烁任务栏图标?

c++ - 将C ++ 11程序链接到CMake中的Qt5会导致错误

c++ - 在我的项目中添加sqlite3库时出现错误消息

java - 使用JNA从Windows访问工具提示

c++ - CMake add_executable在另一个目录中

c - 如何安装GTK +及其所有依赖项?

c++ - 如果它们是16字节对齐,是否可以直接将浮点数转换为__m128?

c - 具有一个for循环的矩阵的原位转置

c - 将指针作为局部变量传递给函数

c++ - Windows 7 GUI参考