為了代碼安全性,減少內存占有率等原因。這時需要將代碼封裝成dll鏈接庫。接下來將詳細介紹如何將代碼封裝成動態鏈接庫。
1.例如將這個函數生成dll鏈接庫。
[cpp]
int add(int a,int b){
return a+b;
}
int add(int a,int b){
return a+b;
}2. 以vs2010開發工具為例。首先新建一個win32控制台項目DllDemo,應用類型選擇"DLL",選擇創建“空項目”,這樣就完成一個DLL類型項目創建。
3. 接著新建test.cpp文件,將下面代碼拷入test.cpp文件中,然後編譯就可以生成dll文件和lib文件。
[cpp]
#define DLL1_API _declspec(dllexport)
#include <iostream>
using namespace std;
DLL1_API int add(int a,int b) //實現兩個整數相加
{
return a+b;
}
#define DLL1_API _declspec(dllexport)
#include <iostream>
using namespace std;
DLL1_API int add(int a,int b) //實現兩個整數相加
{
return a+b;
}4. 這時測試是否可以。首先我們創建一個win32控制台項目TestDll,然後將如下代碼拷入cpp文件中。
[cpp]
#include "stdafx.h"
#include <iostream>
using namespace std;
extern int add(int a,int b);
int _tmain(int argc, _TCHAR* argv[]){
int da,db;
cin>>da>>db;
cout<<add(da,db)<<endl;
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
extern int add(int a,int b);
int _tmain(int argc, _TCHAR* argv[]){
int da,db;
cin>>da>>db;
cout<<add(da,db)<<endl;
return 0;
}
然後將剛剛生成的dll和lib文件拷到TestDll目錄下,並在TestDll properties-》linker-》Iput-》additional Dependencies加入剛剛生成lib文件,最後運行這個項目即可。
到這裡,我們就完成整個dll文件生成和測試工作。