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

标签 c winapi cmake dialog resources

我试图通过资源文件将对话框加载到我的 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: syntax error

我在 CLION(C11 标准)中使用 MinGW

最佳答案

一般来说,STYLE窗口样式( WS_ )和对话框样式( DS_ )等参数在系统头文件中定义。

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

关于c - CMAKE 资源文件中 WINAPI 的对话框资源返回语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849962/

相关文章:

无法理解为什么将变量 i 设置为零?

c++ - 获取窗口图标 : GetClassLong VS SendMessage

c++ - 取决于 CMake 外部项目的 INSTALL 目标

c++ - CMake : How to change default package name using CPack - linux

c - 如何使用旧版本的 CCS 头文件?

c++ - 如果我在 C++ 中调用 new,但堆内存不足,会发生什么情况?

c - 内存映射文件更改未反射(reflect)在基础文件中

c++ - SEM_FAILCRITICALERRORS 会阻止什么?

cmake - 如何使 CMake 重新配置依赖于自定义文件?

c - 为什么C语言的设计者要这样打等价?