資源dll的製作與使用

2021-06-21 21:50:48 字數 1337 閱讀 1437

我使用的ide是vs2005。

1.製作資源dll

建立乙個win32 dll的空工程,然後右擊專案->「新增」->「資源」。根據自己的需要新增資源。這裡我新增乙個png。由於可選項裡面沒有png,所以選擇「自定義」,寫入png,確定。之後選擇「png」,匯入需要的資源。這時,會生成2個檔案,resource.h和 .rc檔案。開啟resource.h就可以看到剛剛加入的png資源的id號了。我的是107。接下來就是生成這個dll。細心的人可能發現,現在這個工程裡幾乎沒有**,只有乙個png。現在生成dll的話編譯器會報錯的。右擊專案->屬性->鏈結器->高階->無入口點,選擇是。現在就可以生成dll了。

2.外部程式引用dll的資源

hinstance hdll = null;  

hdll = loadlibrary("..\\debug\\resdll.dll");

hrsrc hrsrc = null;

hrsrc = findresource( hdll, makeintresource(107), "png" );

makeintresource(107)關鍵是findresource函式,第乙個引數是引用的dll的控制代碼,由loadlibrary返回,第二個引數是資源的id號,可以在resource.h中看到,我之前放入的png的id是107。第三個引數就是資源型別。由於我的是自定義的png,所以引數是"png",如果是本來就有的資源型別比如bitmap就是 rt_bitmap,但是有例外。如果你使用的是字串資源,那麼 findresource()的第二個引數則不能直接使用 makeintresource(nid) 了,應該使用 makeintresource((nid/16)+1).

以下是另外一些資源的載入方法;

//載入動態鏈結庫  

hmodule hdll=loadlibrary("pureresdll");

//載入字串

char buffer[64];

memset(buffer,0,sizeof(buffer));

int nload=loadstring(hdll,1,buffer,sizeof(buffer));

//載入選單

hmenu hmenu=loadmenu(hdll,makeintresource(104));

//載入位圖

hbitmap hbmp=loadbitmap(hdll,makeintresource(103));

//載入圖示

hicon hicon=loadicon(hdll,makeintresource(102));

製作資源dll

製作資源dll 當製作多語言版本的軟體的時候,製作不同語言的資源dll,通過切換dll而實現不同的語言版本是非常有意義的。通常,dll從dllmain 函式開始。製作資源dll的時候,可以沒有dllmain 函式。1 選擇 win32 dynameic link library 2.製作乙個空的工程...

VC 製作純資源 DLL

在製做前請先備份好你的程式!純資源dll檔案實現步驟如下 1 新建立工程xxdll。使用projects的win32 dynamic link library建立純資源dll工程 也就是空的工程 把由你的程式建立的.rc,rc2,ico,bmp等 其他所有資源 檔案加入到該工程檔案中 4 在你的xx...

純資源DLL製作及呼叫

dll是僅包含資源 如圖示 位圖 字串和對話方塊 的dll。使用純資源dll是在多個程式之間共享同 一組資源的好方法。提供其資源被針對多種語言進行本地化的應用程式也是一種好方法。若要建立純資源dll,請建立乙個新的win32dll 非mfc 專案,並將資源新增到此專案。在 新建專案 對話方塊中選擇 ...