(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.h是visual 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);完成加法運算。參考代碼如下所示:
(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.lib和dllTest.h文件拷貝到當前目錄。這樣,,你就可以測試剛才生成的那個dllTest.lib是否可以正常運行了,。這里不妨給出一個參考測試程序:
|
|