mfc
一、建立dll
1、建立mfc動態鏈結庫,在第4部選擇「regular dll with mfc shared linked」型別,即建立與mfc動態鏈結的常規dll,可以被win32應用程式和mfc應用程式使用。
2、新增函式。在生成的工程的test.h檔案中新增語句如下:
extern "c" void _declspec(dllexport)print();
上面新增的是函式的宣告語句,然後在.cpp檔案中編寫函式體。
extern "c" void _declspec(dllexport)print()
cstring str="dll";
afxmessagebox(str);
上面的**加入到語句:
3、編譯、連線。在當前檔案的debug資料夾下生成dll及lib檔案。
二、使用dll
1、新建乙個基於對話方塊的應用程式。新增乙個按鈕。
2、按鈕的單擊響應函式:
hdll=loadlibrary("..\\debug\\mfcdll.dll");//匯入動態鏈結庫
if(hdll)
typedef void(*proctype)();
proctype myprint=(proctype)getprocaddress(hdll,"print");//得到函式位址
(* myprint)();
freelibrary(hdll);//釋放庫
3、把生成的dll檔案複製到指定的目錄下。
win32
一、建立win32 dll
1、建立空的win32動態鏈結庫工程;
2、新增c++原始檔。
3、在**區編寫函式fun(int a,int b);
int fun(int a,int b)
int num1=a;
int num2=b;
int temp=0;
if(awhile(b!=0)/*利用輾除法,直到b為0為止*/
temp=a%b;
a=b;
b=temp;
return num1*num2/a;
4、新增標頭檔案。
int fun(int a, int b);
5、新增模組定義檔案(.def)。新建記事本檔案,將字尾改為.def.
內容如下:
; test.def : declares the module parameters for the dll.
library "win32dll"
description 'test windows dynamic link library'
exports
fun; explicit exports can go here
6、將模組檔案加入到工程。fileview面板-->右擊test files-->add file toproject。。。
7、編譯、連線。
二、使用win32 dll
1、將生成的dll檔案、lib檔案和test.h檔案,複製到指定的目錄下。並且在應用程式的.cpp檔案中新增:#include "test.h"
2、隱式載入win32 dll檔案。選擇project|setting命令,在彈出的對話方塊中選擇link標籤,在「object/library module」文字框中輸入需要匯入的庫檔案lib的檔名。注意lib的路徑。
動態鏈結庫的載入
1、隱式連線
(1)"project"|"settings"命令,彈出project setting對話方塊
(2)link-->objects/library modules 新增庫模板路徑。
(3)將dll放到相應的路徑下。
2、顯示連線:
(1)呼叫loadlibrary();
(2)呼叫getproaddress();
(3)呼叫freelibrary();
動態鏈結庫中資料和函式的匯出
1、建立模組定義檔案:*.def
內容如下:
library filename
description description content
exports
functionname
2、使用關鍵字_declspec(dllexport)匯出函式、變數、類、類的成員
int _declspec(dllexport) _cdecl functionname(int a, int b)
_declspec(dllexport)匯出類的成員:
class _declspec(dllexport) myclass
VC 動態鏈結庫 DLL 程式設計
vc 動態鏈結庫 dll 程式設計 一 理解庫 vc 動態鏈結庫 dll 程式設計 二 非mfc dll vc 動態鏈結庫 dll 程式設計 三 mfc規則dll vc 動態鏈結庫 dll 程式設計 四 mfc擴充套件 dll vc 動態鏈結庫 dll 程式設計 五 dll典型例項 動態鏈結庫 dl...
eXosip生成動態鏈結庫 VC
exosip生成動態鏈結庫 vc exosip 是純c 的sip協議棧實現,高效,簡潔,是眾多sip軟終端的核心庫之一 本段文字記錄了編譯exosip dll的過程 2 unzip,進入libexosip2 3.3.0 platform vsnet,開啟工程檔案 3 改變工程型別 配置屬性 常規 專...
動態鏈結庫 靜態鏈結庫
包含標頭檔案和庫 idir 指定編譯查詢標頭檔案的目錄,常用於查詢第三方的庫的標頭檔案,例 gcc test.c i.inc o test。ldir 指定鏈結時查詢lib的目錄,常用於查詢第三方庫。llibrary 指定額外鏈結的lib庫 巨集定義 dmacro 以字串 1 預設值 定義 macro...