久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VS2008中生成lib和dll庫文件

 JasonQue 2012-05-05

(1)新建項目--->win32控制臺應(yīng)用程序,輸入項目名稱,,例如“dllTest”,,點擊確定;

(2)點擊下一步:

(3)在出現(xiàn)的應(yīng)用程序設(shè)置中,,選擇DLL(默認為控制臺應(yīng)用程序),,如圖所示:

(4)點擊完成,之后,,就可以寫你的庫接口代碼了,。

(5)這個時候,你會發(fā)現(xiàn)項目中出現(xiàn)了一個dllTest.cpp的文件,,該文件的第一條語句,,是這樣的:#include "stdafx.h"。Stdafx.hvisual studio的預(yù)編譯頭文件,,主要是為了加快編譯的速度,。為了讓代碼有更好的跨平臺編譯能力,我建議去除該選項,。Stdafx.h預(yù)編譯選項的去除是這樣的,,依次點擊:dllTest(即,當前項目)-->屬性-->c/c++-->預(yù)編譯頭如下圖所示:

或許,,你已經(jīng)發(fā)現(xiàn)了,,“創(chuàng)建/使用預(yù)編譯頭”的屬性為“使用預(yù)編譯頭(/Yu)”,,這里,只需用將該屬性修改為"不使用預(yù)編譯頭"即可,。如下圖所示:

之后,點擊“應(yīng)用”,,“確定”,。這樣,你就取消了VS2008默認的預(yù)編譯選項,。

(6)接著,,我們來定義接口。在這里,,我打算定義一個類CDllTest,該類只有一個函數(shù),,int Sum(int a, int b);完成加法運算。參考代碼如下所示:

 

  1. dllTest.h  
  2. #ifndef DLL_TEST_H  
  3. #define DLL_TEST_H  
  4.   
  5. #ifndef DLL_API  
  6. #define DLL_API _declspec(dllexport)  
  7. //#else  
  8. //#define DLL_API _declspec(dllimport)  
  9. #endif  
  10.   
  11. class DLL_API CDllTest  
  12. {  
  13. public:  
  14.     CDllTest();  
  15.     ~CDllTest();  
  16.   
  17.     int Sum(int a, int b);  
  18. };  
  19.   
  20. #endif  
  21.   
  22. dllTest.cpp  
  23. #include "dllTest.h"  
  24.   
  25. int CDllTest::Sum(int a, int b)  
  26. {  
  27.     int val = a+b;  
  28.     return val;  
  29. }  
  30.   
  31. CDllTest::CDllTest()  
  32. {  
  33.   
  34. }  
  35.   
  36. CDllTest::~CDllTest()  
  37. {  
  38.   
  39. }  


(7)代碼寫完了,,接著就是編譯了,,選擇debug模式或者release模式都可以。不過,,如果是要發(fā)布,,最好選擇release模式。需要提醒的是,,vs2008默認是生成.dll文件,,也就是所謂的動態(tài)鏈接庫(dll, dynamic link library)。如果你需要編譯靜態(tài)鏈接庫,,只需要設(shè)置一下,,重新編譯就可以了。設(shè)置方法是:項目-->屬性-->常規(guī)這里,,將配置類型從動態(tài)庫(.dll)改為靜態(tài)庫(.lib)即可

默認為動態(tài)庫:

修改為動態(tài)庫:

修改之后,,重新編譯,就生成了dllTest.lib這個靜態(tài)庫文件了,。

(8)接下來,,我們再建立一個win32控制臺應(yīng)用程序,來驗證剛才生成的lib靜態(tài)庫是否可以正常工作,。首先,,建立一個名為TestForDllTest的工程,然后,,依次選擇,,項目-->屬性-->鏈接器-->輸入在其中的附加依賴項屬性中,填入dllTest.lib,,如下圖所示:

(9)點擊確定,,之后,,把剛才dllTest工程中生成的dllTest.libdllTest.h文件拷貝到當前目錄。這樣,,你就可以測試剛才生成的那個dllTest.lib是否可以正常運行了,。這里不妨給出一個參考測試程序:

 

  1. #include "stdafx.h"  
  2. #include "dllTest.h"  
  3. #include "iostream"  
  4. using namespace std;  
  5.   
  6. int _tmain(int argc, _TCHAR* argv[])  
  7. {  
  8.     CDllTest dt;  
  9.     int res = dt.Sum(1, 2);  
  10.     cout<<"res: "<<res<<endl;  
  11.   
  12.     system("pause");  
  13.     return 0;  
  14. }  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多