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工具來...