提问人:MagicEmperor 提问时间:11/16/2023 最后编辑:MagicEmperor 更新时间:11/16/2023 访问量:41
cmake 如何使用 rc 文件中的资源 [已关闭]
How cmake uses resources in rc files [closed]
问:
请问 cmake 开发 MFC,如何打包和使用 rc 文件中的图标资源
这是我的CMakeLists.txt:
file(GLOB_RECURSE AEGISUB_BITMAPS CONFIGURE_DEPENDS resource/*.ico)
list (LENGTH AEGISUB_BITMAPS length)
message (">>> LENGTH: ${length}")
foreach(BITMAP_FILENAME IN LISTS AEGISUB_BITMAPS)
get_filename_component(BITMAP_NAME ${BITMAP_FILENAME} NAME_WE)
string(TOUPPER bitmap_${BITMAP_NAME} BITMAP_NAME_UPPER)
message (">>> FILE_NAME: ${BITMAP_FILENAME}")
string(APPEND AEGISUB_RES_WIN_RC_ENTRIES "${BITMAP_NAME_UPPER} RCDATA ${BITMAP_FILENAME}\n")
endforeach()
configure_file(resource/resources.rc.in src/generated/windows/resource.rc)
target_sources(WindowTool PRIVATE
src/generated/windows/resource.rc)
我在 resource 下提取了 ico 后缀文件并将其保存到变量中,并使用 configure_file 方法生成了 rc 文件。生成的文件:
BITMAP_LOGO RCDATA D:/CodeWorkSpace/WindowTool/resource/logo.ico
BITMAP_LOGO2 RCDATA D:/CodeWorkSpace/WindowTool/resource/logo2.ico
然后使用 target_sources 方法,然后构建成功,但是当我在代码中获取资源时,我无法获取它们。代码如下:
CString resourceStr = L"BITMAP_LOGO2";
LPWSTR resourceName = (LPWSTR)(LPCWSTR)resourceStr;
HRSRC resSrc = FindResource(NULL, resourceName, RT_RCDATA);//Here I tried replacing NULL with the current window handle, but it also didn't work
if (resSrc == NULL){
MessageBox(NULL,
_T("can not find resource"),
_T("can not find resource"),
NULL);
return 1;
}
请问自己做错了什么? 我的开发工具是clion。
答: 暂无答案
评论