五,動態庫(dll)的封裝與使用


在項目開發中,我們經常會使用到動態庫(dll),要么是使用別人的動態庫,要么是將功能函數封裝為動態庫給別人用。那么如何封裝和使用動態庫呢?以下內容為你講解。

1.動態庫的封裝

以vs2010為例,我們在創建項目的時候,首先選擇win32控制台項目,然后在應用程序設置中選擇DLL.如下圖:

選擇win32控制台項目

選擇DLL

然后新建一個頭文件,這里取名為 mydll.h,添加如下代碼:

#ifndef __MYDLL_H
#define __MYDLL_H
#define DLL_API extern "C" _declspec (dllimport)

DLL_API int add(int a,int b);  

#endif 

新建源文件,取名為mydll.c,添加如下代碼

#include <stdio.h>
#define DLL_API extern "C" _declspec(dllexport)  //注意,這里是export
int add(int a,int b) //api函數
{
    return a+b;
}

編譯工程,在debug或者release文件夾下會生成*.dll和*.lib文件。至此,動態庫封裝完成。

2.動態庫的使用

將動態庫中的*.dll文件,*.lib文件還有*.h文件拷貝至項目工程的主函數文件所在目錄下,引用 動態庫頭文件 並在代碼中寫上如下 聲明

#pragma  comment (lib,"mydll.lib")

該行代碼將dll導入到 項目工程中,然后我們就可以調用dll里的函數了。

測試代碼如下:

#include "stdio.h"
#include "mydll.h" //引用動態庫頭文件
#pragma  comment (lib,"Dll1.lib") //導入動態庫

int main(int argc, int* argv[])
{
    int a = 10;
    int b = 20;
	printf("a+b = %d\n",add(a,b));
    system("pause");
    return 0;
}

這里需要注意一個問題

在dll中申請的內存,也要在dll中釋放


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM