動態鏈結庫的建立1

2021-06-04 21:39:23 字數 1317 閱讀 8946

1、動態鏈結庫分為:non-mfc dll、mfc regular dll(mfc規則dll)、mfc extension dll(mfc擴充套件dll)

non-mfc dll檔案

隱式呼叫:

2、建立工程win32 project,並選擇 dll 鏈結庫。

3、在cpp檔案中新增如下**:

#include "stdafx.h"

#ifndef dynamic_cpp

#define dynamic_cpp

extern "c" int __declspec(dllexport) add(int x, int y)

#endif

4、重新建立工程,進行測試:

#pragma comment(lib, "..\\dynamic\\debug\\dynamic.lib")

extern "c" int add(int,int);

int _tmain(int argc, _tchar* argv)

顯示呼叫:

5、修改main函式中呼叫,如下:

typedef int (*lpaddfun)(int , int);//定義函式指標

int _tmain(int argc, _tchar* argv)

addfun = (lpaddfun)getprocaddress(hdll,"add");

if(addfun == null)

printf("2 + 3 = %d\n",(*addfun)(2,3));

freelibrary(hdll);

return 0;

}}

首先,語句typedef int ( * lpaddfun)(int,int)定義了乙個與add函式接受引數型別和返回值均相同的函式指標型別。隨後,在main函式中定義了lpaddfun的例項addfun;

其次,在函式main中定義了乙個dll hinstance控制代碼例項hdll,通過win32 api函式loadlibrary動態載入了dll模組並將dll模組控制代碼賦給了hdll;

再次,在函式main中通過win32 api函式getprocaddress得到了所載入dll模組中函式add的位址並賦給了addfun。經由函式指標addfun進行了對dll中add函式的呼叫;

最後,應用工程使用完dll後,在函式main中通過win32 api函式freelibrary釋放了已經載入的dll模組。

建立靜態鏈結庫 動態鏈結庫

下面的實操中的動態庫或者靜態庫名都用wujunwu 第一步 建立乙個源 建立靜態鏈結庫的源 include void func1 void int func2 int x,int y 第二步 建立乙個.件作為函式宣告 void func1 void intfunc2 int x,int y 第三步 ...

建立動態鏈結庫

要建立dll,就必須首先建立乙個或多個源 檔案,還有乙個連線檔案用來匯出函式。如果打算可以以載入時動態鏈結使用dll的話,還必須建立乙個導入庫。建立原始檔 dll的源 中包含了需匯出的函式及資料,還有內部函式及資料,另外可以有乙個可選的入口函式。你可以使用任意支援建立基於windows的dll工具來...

建立動態鏈結庫

要建立dll,就必須首先建立乙個或多個源 檔案,還有乙個連線檔案用來匯出函式。如果打算可以以載入時動態鏈結使用dll的話,還必須建立乙個導入庫。建立原始檔 dll的源 中包含了需匯出的函式及資料,還有內部函式及資料,另外可以有乙個可選的入口函式。你可以使用任意支援建立基於windows的dll工具來...