1.要在生成dll檔案的同時生成lib檔案,函式宣告時前面要加__declspec(dllexport)。
可在標頭檔案中如下定義:
#ifndef __mydll_h
#define __mydll_h
#ifdef mydll_exports
#define mydll __declspec(dllexport)
#else
#define mydll __declspec(dllimport)
#endif
mydll int add(int a, int b);
class mydll myobject
;#endif
在mydll.cpp檔案中實現add函式時:
#include #define mydll_exports
#include "mydll.h"
int add(int a, int b)
myobject::myobject(int v):value(v){}
void myobject::print()
2.呼叫dll裡面的add函式時,專案中載入.h標頭檔案、lib之後編譯生成exe,並將dll放在執行程式(exe)同一級目錄下,這樣exe程式執行時可以自動載入該dll。
如果通過loadlibrary()手工載入dll的話,只需要dll檔案,不需要.h和.lib。詳見:
cc++學習指南-應用篇\dll_01
DLL lib檔案與dll檔案關係
windows下的動態庫,伴隨著乙個同名.lib檔案,當使用靜態載入的方式使用dll檔案時,需要用到該lib檔案,當使用動態方式使用dll檔案時,不需要該lib檔案。lib是編譯時的東西,在lib裡面包含了方法名和方法所在的dll名字,可以用dumpbin all lib檢視內容。dll是執行時的東...
DLL的建立使用以及注入
dll的入口函式 bool winapi dllmain hinstance hinstance,dword reason,lpvoid lpvreserved hinstance 該引數是當前dll模組的控制代碼,即本動態連線庫模組的例項控制代碼。reason 該引數表示dllmain 函式被呼叫...
vc 建立dll檔案以及dll呼叫
一 生成dll 1 用vc建立乙個win32dll工程 dlltest,選上 匯出符號 2 在dlltest.cpp中編寫匯出函式fun 這個函式是別的程式要呼叫的函式 int fun int i 3 在dlltest.h中宣告匯出這個函式 declspec dllexport int fun in...