首页 > 解决方案 > 是否可以使用 cmake 将二进制文件作为资源插入 VS 项目?

问题描述

我尝试构建 exe,它将显示编译成 exe 的静态 bmp 图像。但我不能这样做,因为预处理器在以下 winapi 代码中找不到文件的定义:

case WM_PAINT :
        hDC = BeginPaint(hWnd, &PaintStruct);
        hBitmap = LoadImage(NULL, MAKEINTRESOURCE(IDI_SPLASH), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    

CMakeLists.txt:

project(number1)
set (R_DIR "/res")
set(CMAKE_MFC_FLAG 1)
add_executable(main WIN32 src/main.cpp res/r.rc)
set_target_properties(main PROPERTIES RESOURCE /res/splash.bmp)

资源库:

IDI_SPLASH  BITMAP  "sample.bmp"

在 Visual Studio 资源查看器中打开 bmp 文件,但使用双配额 ("IDI_SPLASH") 命名。

Ps 对不起,但英语不是我的母语

标签: c++visual-studiowinapicmakeresources

解决方案


根据 IInspectable 的回答,我添加了 resource.h:

#define IDI_SPLASH 101 //or other number id. 

这个头文件我已经包含在源文件 (.cpp) 和 resource.rc 中。资源文件中的 include 命令与源文件中的相同:

#include "resource.h"
IDI_SPLASH  BITMAP  "sample.bmp"

有用 :)


推荐阅读