VC中釋放程式中地資源到檔案

2021-06-19 01:32:25 字數 2467 閱讀 7831

方法一:使用createfile和writefile

lpvoid   lp=::lockresource(gl);    //   查詢,載入,鎖定資源    

bool bexist=ffind.findfile(strfilename);    //判斷檔案是否存在

ffind.close ();

if(!bexist)    //如果檔案不存在則建立

方法2:使用cfile

bool bexist=ffind.findfile(strfilename);    //判斷檔案是否存在

ffind.close ();

if(!bexist)

函式說明:

函式原型:hrsrc findresourceex(hxodule hmodule,lpctstr lptype,lpctstr lpname,word wlanguage);

函式功能:該函式確定指定模組中指定型別、名稱及語言的資源所在位置。

引數:hmodule:處理包含資源的可執行檔案的模組。如果引數值為null,則函式搜尋曾經建立的最近過程的模組。

wlanguage:指明語言資源。若此引數為makelangid(lang_neutral,sublang_neutral),則為了指定零一種語言,可以使用巨集建立這個引數。更多的資訊請參見makelangid。

返回值:如果函式執行成功,其返回值是乙個指定資源資訊塊的控制代碼。為了獲得資源,要將此控制代碼傳遞給loadresource函式。如果函式執行失敗,返回值為空。若想獲得更多的錯誤資訊,請呼叫getlasterror函式。

函式原型; hglosal loadresouare(hmodule hmodule,hrsrc hreslnfo);

函式功能:該函式裝載指定資源到全域性儲存器。

引數:hmodule:處理包合資源的可執行檔案的模組控制代碼。若hmodule為null,系統從當前過程中的模組中裝載資源。

hreslnfo:將被裝載資源的控制代碼。它必須由函式firtdresource或findresourceex建立。

返回值:如果函式執行成功,返回值是相關資源的資料的控制代碼。如果函式執行失敗,返回值為null。若想獲得更多的錯誤資訊,請呼叫getlasterror函式。

注意:loadresource的返回型別是向後相容的hglobal型,而不是因為函式返回乙個全域性儲存塊控制代碼。不要傳遞這個控制代碼給函式globallock或globalfree。為了得到更多資源資料資訊,請呼叫lockresource函式。

當使用完資源後,必須通過呼叫函式以釋放加速器表、位圖、游標、圖示以及選單所佔的記憶體資源:加速器表:destroyacceleratortable;位圖:deleteobject;游標:destroycursor;圖示:destroylcon;選單:destroymenu。

當過程建立終止時,系統將自動刪除這些資源。但是呼叫相關函式也可以保留記憶體減少過程的工作設定所佔空間。

函式功能:該函式鎖定記憶體中的指定資源。

函式原型:lpvoid lockresource(hglobal hresdate);

引數:hresdate:被裝載的資源的控制代碼。函式losdresource可以返回這個控制代碼。

返回值:如果被裝載的資源被所住了,返回值是資源第乙個位元組的指標;否則為null。

注意:通過使用函式findresource或findresourceex返回控制代碼試圖所住資源,不再工作。可以返回乙個錯誤的資料和任意資料的指標。

當使用完資源後,必須通過呼叫函式以釋放加速器表、位圖、游標、目標以及某單所佔的記憶體資源:加速器表:destroyacceleratortable;位圖:deleteobject;游標:destroycursor;圖示:destroylcon;選單:destroymenu。

當過程建立終止時,系統將自動刪除這些資源。但是呼叫相關函式也可以保留記憶體減少過程的工作設定所佔空間。

freeresource()

函式功能:該函式已過時。它為16位的基於win32的應用程式提供了乙個簡單的埠。對於win32應用程式(32位)沒有必要釋放用loadresource函式裝載資源。由loadresource所獲得的資源隨著被裝載模組的解除安裝自動被釋放。但是,為了保留記憶體減少的程式工作設定所佔空間大小,必須通過呼叫下列表中的函式以釋放加速器表、位圖、游標、圖示以及選單所佔的記憶體資源。

加速器表:destroyacceleratortable;位圖:deleteobject;游標:destroycursor;

圖示:destroylcon;選單:destroymenu。

簡單釋放程式中的資源到檔案

desc 將程式中的資源解壓 param1 in szrestype 資源型別 param2 in dwresid 資源id param3 in szfilename 資源解壓到此檔案 param4 in bfailifexists 為true時,如果szfilename檔案已經存在,則執行失敗,否...

VC釋放資源檔案DLL,EXE等。。。

name releaseresfile brief 釋放資源檔案 param word wresid 資源id param lpctstr szrestype 資源型別 param lpctstr szfilename 釋放後的檔名稱 return 成功true,釋放false bool relea...

C C VC 中釋放自身資源檔案

函式功能 釋放資源檔案 引數說明 dword dwresname 指定要釋放的資源id號,如idr exe lpcstr lprestype 指定釋放的資源的資源型別 lpcstr lpfilepathname 指定釋放後的目標檔名 返回值 成功則返回true,失敗返回false bool free...