[英]How to get data in resource file?
我在運行時得到 NULL(hRsrc)。
.cpp
HINSTANCE hInstance = AfxGetInstanceHandle();
HRSRC hRsrc = FindResource(hInstance, MAKEINTRESOURCE(IDR_EXE1), _T("EXE"));
if (hRsrc == NULL) {
MessageBox(NULL, TEXT("LoadEmbedded"), TEXT("1"), MB_OK);
}
HANDLE hRes = LoadResource(hInstance, hRsrc);
if (hRes == NULL) {
MessageBox(NULL, TEXT("LoadEmbedded"), TEXT("2"), MB_OK);
}
LPSTR lpRes = (LPSTR)LockResource(hRes);
if (lpRes == NULL) {
MessageBox(NULL, TEXT("LoadEmbedded"), TEXT("3"), MB_OK);
}
.rc
IDR_EXE1 EXE "crashpad_handler.exe"
我設置數據ID和類型。
資源.h
#define IDR_EXE1 105
.rc
文件是否有#include "resource.h"
語句?
如果不是,則在編譯.rc
時不會定義IDR_EXE1
宏,因此資源的 ID 將是文字字符串"IDR_EXE1"
而不是數字105
(使用資源查看器工具來驗證)。 在這種情況下,您必須在調用FindResource()
時使用_T("IDR_EXE1")
而不是MAKEINTRESOURCE(IDR_EXE1)
) :
HRSRC hRsrc = FindResource(hInstance, _T("IDR_EXE1"), _T("EXE"));
否則,修復.rc
文件:
#include "resource.h" // <-- add this!
IDR_EXE1 EXE "crashpad_handler.exe"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.