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

时间:2019-07-02 10:03:16

标签: 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标准版)中使用MinGW

1 个答案:

答案 0 :(得分:1)

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

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