我們經常看見有一些程式開始執行時會釋放一些檔案,以便於後續操作。例如一些病毒為了便於傳播和隱藏,經常把一些需要用的動態庫或是驅動檔案打包進乙個可執行檔案中,再由需要使用的時候,再臨時釋放和載入。接下來筆者就將演示如何將dll打包進檔案,並實現動態釋放和載入。1.在專案工程上點選右鍵,選擇「新增資源」;
2.選擇"匯入"項,選擇「所有檔案」,選擇我們要匯入的檔案「test.dll」;
3.會彈出命名自定義資源型別的對話方塊,自定義我們的資源型別;
4.點選確定後,完成匯入,"ctrl+s"儲存二進位制資源檔案;
5.我們可以在自動新增的「resource.h」標頭檔案中看到我們的資源id巨集;
6.程式設計實現載入資源。
// 獲取資源大小
dword dwsize = sizeofresource(null, hrsrc);
if (dwsize <= 0)
// 載入資源
hglobal hglobal = loadresource(null, hrsrc);
if (hglobal == null)
// 鎖定資源,並返回指向資源第一位元組的指標
lpvoid lpres = lockresource(hglobal);
if (lpres == null)
handle hfile = createfile(szfilename, generic_read | generic_write, file_share_read | file_share_write, null, create_always, file_attribute_normal, null);
if (hfile == null)
dword dwwriten = 0;
bool bres = writefile(hfile, lpres, dwsize, &dwwriten, null);
if (bres == false || dwwriten <= 0)
closehandle(hfile);
closehandle(hglobal);
closehandle(hrsrc);
return true;
}int apientry winmain(_in_ hinstance hinstance, _in_opt_ hinstance hprevinstance, _in_ lpstr lpcmdline, _in_ int nshowcmd)
hmodule hmodule = loadlibrary("test.dll");
if (hmodule == null)
func fc = (func)getprocaddress(hmodule, "func");
if (fc == null)
fc();
freelibrary(hmodule);
return 0;
}
如何載入第三方js
網頁中載入js檔案是乙個老問題了,已經被討論了一遍又一遍,這裡不會再贅述各種經典的解決方案。js檔案可以通過 來分為兩個緯度 第一方js和第三方js。第一方js是網頁開發者自己使用的js 內容開發者可控 而第三方js則是其他服務提供商提供的 內容開發者不可控 他們將自己的服務包裝成js sdk供網頁...
專案配置 新增第三方資源
當使用第三方控制項庫時,會需要新增相應的資源。下例中所示第三方庫的目錄結構如下 d stingray studio 2006 v2 toolkit secres.h d stingray studio 2006 v2 toolkit secres.rc 其配置步驟如下 1.在資源檢視中,選中專案的 ...
C Winform第三方控制項資源彙總
1.hzhcontrols 傳送門 clickme 2.sunnyui.sharp 傳送門 clickme 3.fontawesome.sharp 老外寫的 傳送門 clickme 安裝完成之後,直接就可以在工具欄中呼叫控制項 最後我通過自己的使用評價以下這三種控制項庫,前兩個都是中國人寫的,比較開...