程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 總結之一 詳細動態鏈接庫編寫過程

總結之一 詳細動態鏈接庫編寫過程

編輯:C++入門知識

   為了代碼安全性,減少內存占有率等原因。這時需要將代碼封裝成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文件生成和測試工作。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved