![vs2010 用c++語言創(chuàng)建dll及其使用_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/4b601762-a8ee-4c04-8726-271713bafb90/4b601762-a8ee-4c04-8726-271713bafb901.gif)
![vs2010 用c++語言創(chuàng)建dll及其使用_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/4b601762-a8ee-4c04-8726-271713bafb90/4b601762-a8ee-4c04-8726-271713bafb902.gif)
![vs2010 用c++語言創(chuàng)建dll及其使用_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/4b601762-a8ee-4c04-8726-271713bafb90/4b601762-a8ee-4c04-8726-271713bafb903.gif)
![vs2010 用c++語言創(chuàng)建dll及其使用_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/4b601762-a8ee-4c04-8726-271713bafb90/4b601762-a8ee-4c04-8726-271713bafb904.gif)
![vs2010 用c++語言創(chuàng)建dll及其使用_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/4b601762-a8ee-4c04-8726-271713bafb90/4b601762-a8ee-4c04-8726-271713bafb905.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、我們將創(chuàng)建的第一種類型的庫是動態(tài)鏈接庫 (DLL)。 使用 DLL 是一種重用代碼的絕佳方式。 您不必在自己創(chuàng)建的每個程序中重新實(shí)現(xiàn)同一例程,而只需對這些例程編寫一次,然后從需要該功能的應(yīng)用程序引用它們即可。 本演練涵蓋以下內(nèi)容:創(chuàng)建新的動態(tài)鏈接庫 (DLL) 項(xiàng)目。向動態(tài)鏈接庫添加類。創(chuàng)建引用動態(tài)鏈接庫的應(yīng)用程序。在控制臺應(yīng)用程序中使用類庫的功能。運(yùn)行應(yīng)用程序。本主題假定您具備 C+ 語言的基礎(chǔ)知識。 如果您是剛開始學(xué)習(xí) C+,建議您參閱 Herb Schildt 編寫的“C+ Beginner's Guide”(C+ 初學(xué)者指南), 創(chuàng)建新的動態(tài)鏈接庫 (DLL) 項(xiàng)目1.從“文件
2、”菜單中,選擇“新建”,然后選擇“項(xiàng)目”。2.在“項(xiàng)目類型”窗格中,選擇“Visual C+”下的“Win32”。3.在“模板”窗格中,選擇“Win32 控制臺應(yīng)用程序”。4.為項(xiàng)目選擇一個名稱,如 MathFuncsDll,并將其鍵入“名稱”字段。 為解決方案選擇一個名稱,如 DynamicLibrary,并將其鍵入“解決方案名稱”字段。 5.單擊“確定”啟動 Win32 應(yīng)用程序向?qū)А?在“Win32 應(yīng)用程序向?qū)А睂υ捒虻摹案攀觥表撝?,單擊“下一步”?6.在“Win32 應(yīng)用程序向?qū)А敝械摹皯?yīng)用程序設(shè)置”頁中,選擇“應(yīng)用程序類型”下的“DLL”(如果可用),或者選擇“控制臺應(yīng)用程序”(
3、如果“DLL”不可用)。 某些版本的 Visual Studio 不支持通過使用向?qū)?chuàng)建 DLL 項(xiàng)目。 您可以稍后對此進(jìn)行更改,以將項(xiàng)目編譯為 DLL。 7.在“Win32 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁中,選擇“附加選項(xiàng)”下的“空項(xiàng)目”。8.單擊“完成”創(chuàng)建項(xiàng)目。向動態(tài)鏈接庫添加類1.若要為新類創(chuàng)建頭文件,請從“項(xiàng)目”菜單中選擇“添加新項(xiàng)”。 將顯示“添加新項(xiàng)”對話框。 在“類別”窗格中,選擇“Visual C+”下的“代碼”。 在“模板”窗格中選擇“頭文件(.h)”。 為頭文件選擇一個名稱,如 MathFuncsDll.h,并單擊“添加”。 將顯示一個空白文件。 2.添加一個名為“M
4、yMathFuncs”的簡單類,以執(zhí)行常見的算術(shù)運(yùn)算,如加、減、乘和除。 代碼應(yīng)與以下內(nèi)容類似: 復(fù)制/ MathFuncsDll.hnamespace MathFuncs class MyMathFuncs public: / Returns a + b static _declspec(dllexport) double Add(double a, double b); / Returns a - b static _declspec(dllexport) double Subtract(double a, double b); / Returns a * b static _declsp
5、ec(dllexport) double Multiply(double a, double b); / Returns a / b / Throws DivideByZeroException if b is 0 static _declspec(dllexport) double Divide(double a, double b); ;3.請注意此代碼方法聲明中的 _declspec(dllexport) 修飾符。 這些修飾符使 DLL 能夠?qū)С鲈摲椒ㄒ怨┢渌麘?yīng)用程序使用。 有關(guān)更多信息,請參見 dllexport, dllimport。 4.若要為新類創(chuàng)建源文件,請從“項(xiàng)目”菜單中選擇
6、“添加新項(xiàng)”。 將顯示“添加新項(xiàng)”對話框。 在“類別”窗格中,選擇“Visual C+”下的“代碼”。 在“模板”窗格中,選擇“C+ 文件(.cpp)”。 為源文件選擇一個名稱,如 MathFuncsDll.cpp,并單擊“添加”。 將顯示一個空白文件。 5.在源文件中實(shí)現(xiàn)“MyMathFuncs”的功能。 代碼應(yīng)與以下內(nèi)容類似: 復(fù)制/ MathFuncsDll.cpp/ compile with: /EHsc /LD#include "MathFuncsDll.h"#include <stdexcept>using namespace std;namespa
7、ce MathFuncs double MyMathFuncs:Add(double a, double b) return a + b; double MyMathFuncs:Subtract(double a, double b) return a - b; double MyMathFuncs:Multiply(double a, double b) return a * b; double MyMathFuncs:Divide(double a, double b) if (b = 0) throw new invalid_argument("b cannot be zero
8、!"); return a / b; 6.若要將項(xiàng)目生成為 DLL,請從“項(xiàng)目”菜單中選擇 MathFuncsDll“屬性.”。 在左窗格中,選擇“配置屬性”下的“常規(guī)”。 在右窗格中,將“配置類型”更改為“動態(tài)庫(.dll)”。 單擊“確定”保存更改。 注意如果您從命令行生成項(xiàng)目,請使用 /LD 編譯器選項(xiàng)指定輸出文件應(yīng)為 DLL。 有關(guān)更多信息,請參見 /MD、/MT、/LD(使用運(yùn)行庫)。 7.編譯該動態(tài)鏈接庫,方法是選擇“生成”菜單中的“生成解決方案”。 這樣就創(chuàng)建了一個可供其他程序使用的 DLL。 有關(guān) DLL 的詳細(xì)信息,請參見 DLL。 創(chuàng)建引用動態(tài)鏈接庫的應(yīng)用程序1.
9、若要創(chuàng)建將引用并使用剛創(chuàng)建的動態(tài)鏈接庫的應(yīng)用程序,請從“文件”菜單中選擇“新建”,然后選擇“項(xiàng)目.”。2.在“項(xiàng)目類型”窗格中,選擇“Visual C+”下的“Win32”。3.在“模板”窗格中,選擇“Win32 控制臺應(yīng)用程序”。4.為項(xiàng)目選擇一個名稱(如 MyExecRefsDll),并將其鍵入“名稱”字段。 從“解決方案”旁邊的下拉列表中選擇“添入解決方案”。 這會將新項(xiàng)目添加到該動態(tài)鏈接庫所屬的同一個解決方案中。 5.單擊“確定”啟動“Win32 應(yīng)用程序向?qū)А薄?在“Win32 應(yīng)用程序向?qū)А睂υ捒虻摹案攀觥表撝校瑔螕簟跋乱徊健薄?6.在“Win32 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”
10、頁中,選擇“應(yīng)用程序類型”下的“控制臺應(yīng)用程序”。7.在“Win32 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁中,清除“附加選項(xiàng)”下的“預(yù)編譯頭”復(fù)選框。8.按“完成”創(chuàng)建項(xiàng)目。在控制臺應(yīng)用程序中使用類庫的功能1.創(chuàng)建新的控制臺應(yīng)用程序后,將為您創(chuàng)建一個空程序。 源文件的名稱與您在前面為項(xiàng)目選擇的名稱相同。 在本示例中,名為“MyExecRefsDll.cpp”。 2.若要使用在動態(tài)鏈接庫中創(chuàng)建的算術(shù)例程,則必須引用該庫。 若要執(zhí)行此操作,請?jiān)诮鉀Q方案資源管理器中選擇 MyExecRefsDll 項(xiàng)目,然后從“項(xiàng)目”菜單中選擇“引用.”。 在“屬性頁”對話框中,展開“通用屬性”節(jié)點(diǎn),選擇“框架和引用
11、”,然后選擇“添加新引用.”按鈕。 有關(guān)“引用.”對話框的更多信息,請參見“<Projectname> 屬性頁”對話框 ->“通用屬性”->“框架和引用”。 3.顯示“添加引用”對話框。 此對話框列出了所有可以引用的庫。 “項(xiàng)目”選項(xiàng)卡列出了當(dāng)前解決方案中的所有項(xiàng)目,以及它們包含的所有庫。 在“項(xiàng)目”選項(xiàng)卡中,選擇 MathFuncsDll。 然后單擊“確定”。 4.若要引用動態(tài)鏈接庫的頭文件,必須修改包含目錄路徑。 為此,請?jiān)凇皩傩皂摗睂υ捒蛑姓归_“配置屬性”節(jié)點(diǎn),然后展開“C/C+”節(jié)點(diǎn),并選擇“常規(guī)”。 在“附加包含目錄”旁邊,鍵入 MathFuncsDll.h
12、頭文件所在位置的路徑。 5.可執(zhí)行文件僅在運(yùn)行時加載動態(tài)鏈接庫。 必須告訴系統(tǒng)在哪里查找“MathFuncsDll.dll”。 您可以通過使用 PATH 環(huán)境變量做到這一點(diǎn)。 為此,請?jiān)凇皩傩皂摗睂υ捒蛑姓归_“配置屬性”節(jié)點(diǎn),并選擇“調(diào)試”。 在“環(huán)境”旁邊鍵入以下內(nèi)容:PATH=<MathFuncsDll.dll 文件的路徑>,其中 <MathFuncsDll.dll 文件的路徑> 應(yīng)替換為 MathFuncsDll.dll 的實(shí)際位置。 單擊“確定”保存所有更改。 注意如果要從命令行而不是從 Visual Studio 運(yùn)行可執(zhí)行文件,則必須在命令提示符處手動更新
13、PATH 環(huán)境變量,如下所示:set PATH=%PATH%;<MathFuncsDll.dll 文件的路徑>,其中 <MathFuncsDll.dll 文件的路徑> 應(yīng)替換為 MathFuncsDll.dll 的實(shí)際位置。6.現(xiàn)在,可以在應(yīng)用程序中使用“MyMathFuncs”類了。 使用以下代碼替換“MyExecRefsDll.cpp”的內(nèi)容: 復(fù)制/ MyExecRefsDll.cpp/ compile with: /EHsc /link MathFuncsDll.lib#include <iostream>#include "MathFun
14、csDll.h"using namespace std;int main() double a = 7.4; int b = 99; cout << "a + b = " << MathFuncs:MyMathFuncs:Add(a, b) << endl; cout << "a - b = " << MathFuncs:MyMathFuncs:Subtract(a, b) << endl; cout << "a * b = " << MathFuncs:MyMathFuncs:Multiply(a, b) << endl; cout << "a / b = " << MathFuncs:MyMathFuncs:Divide(a, b) << endl; retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州蘇教版三年級數(shù)學(xué)上冊第一單元《兩、三位數(shù)乘一位數(shù)》聽評課記錄
- 七年級數(shù)學(xué)上冊第5章一元一次方程5.4一元一次方程的應(yīng)用第4課時利率等其他問題聽評課記錄(新版浙教版)
- 人教版數(shù)學(xué)七年級下冊5.1.2《垂線》聽評課記錄2
- 統(tǒng)編版初中語文七年級下冊第四課《孫權(quán)勸學(xué)》聽評課記錄
- 新版湘教版秋八年級數(shù)學(xué)上冊第四章一元一次不等式組課題不等式聽評課記錄
- 聽評四年級音樂課記錄
- 聽評課記錄七年級歷史
- 七年級數(shù)學(xué)上冊第11課時有理數(shù)的乘法運(yùn)算律聽評課記錄新湘教版
- 人教版七年級數(shù)學(xué)上冊:1.4.2 《有理數(shù)的除法》聽評課記錄
- 粵人版地理七年級下冊《第三節(jié) 巴西》聽課評課記錄2
- GB/T 32691-2016汽車空調(diào)電磁離合器
- 第八章 客戶關(guān)系管理
- 新版人教版高中英語選修一、選修二詞匯表
- 2022年河北邯鄲世紀(jì)建設(shè)投資集團(tuán)有限公司招聘筆試試題及答案解析
- 萬物有靈且美(讀書心得)課件
- 住院患者跌倒墜床質(zhì)量控制管理考核標(biāo)準(zhǔn)
- 人民醫(yī)院醫(yī)共體財(cái)務(wù)管理部工作手冊
- 戰(zhàn)略規(guī)劃培訓(xùn)luqiang課件
- 高三日語一輪復(fù)習(xí)之自謙語句型課件
- YYT 0325-2022 一次性使用無菌導(dǎo)尿管
- 收取執(zhí)行款銀行賬戶確認(rèn)書
評論
0/150
提交評論