VC 動態鏈結庫

2021-09-06 08:24:06 字數 2286 閱讀 1080

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...