2010-06-11 35 views

回答

11

這很簡單:在你的解決方案中,切換到資源視圖,右鍵點擊你的RC文件,選擇「添加資源」,點擊「導入」,選擇「所有文件」,然後打開你想要的文件。系統會提示您輸入自定義資源類型。例如輸入「TEXT」。

您現在可以加載自定義資源這樣的:

HRSRC hRes = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_TEXT1), _T("TEXT")); 
DWORD dwSize = SizeofResource(GetModuleHandle(NULL), hRes); 
HGLOBAL hGlob = LoadResource(GetModuleHandle(NULL), hRes); 
const BYTE* pData = reinterpret_cast<const BYTE*>(::LockResource(hGlob)); 

你不需要解鎖或免費的資源,所以這個代碼可以精確地用作無需任何額外調用編寫的。當程序退出時,資源將被釋放。

+0

AfxGetResourceHandle僅在MFC中可用。任何想法,我可以在win32中使用哪個API? 我正在創建一個exe文件,並且所有資源都在該exe文件中。 – anand 2010-06-11 15:18:59

+0

使用GetModuleHandle(NULL)。相應地更改了我的答案。 – humbagumba 2010-06-11 15:33:38

+1

GetModuleHandle(NULL)適用於EXE資源,但應爲位於其中的資源提供DLL模塊句柄。並且不要忘記null在字符串中給出可能的垃圾字符後終止字符串。 – bvj 2014-09-01 05:27:26

相關問題