簡體   English   中英

如何獲取資源文件中的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM