您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用VS2015創建和使用動態鏈接庫,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我們先來演示如何使用VS2015創建一個動態鏈接庫。
1.新建一個“Win32控制臺應用程序”,“名稱”為MathFuncsDll,“解決方案名稱”為DynamicLibrary,單擊“確定”。
2.單擊“下一步”,“應用程序類型”選擇“DLL”,“附加選項”勾選“空項目”,單擊“完成”。
3.為解決方案“DynamicLibrary”下的項目“MathFuncsDll”添加頭文件MathFuncsDll.h,代碼如下:
#pragma once
// MathFuncsDll.h namespace 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 __declspec(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); };
PS:修飾符__declspec(dllexport)使 DLL 能夠導出該方法以供其他應用程序使用
4.為解決方案“DynamicLibrary”下的項目“MathFuncsDll”添加源文件MathFuncsDll.cpp,代碼如下:
// MathFuncsDll.cpp #include <stdexcept> #include "MathFuncsDll.h" using namespace std; namespace 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!"); } return a / b; } }
5.右鍵單擊項目MathFuncsDll選擇“屬性”,在左窗格中選擇“配置屬性”下的“常規”,在右窗格中,將“配置類型”更改為“動態庫(.dll)”。 單擊“確定”保存更改。
6.按Ctrl+B編譯生成該動態鏈接庫,或者單擊“生成”菜單中的“生成解決方案”菜單。
至此,一個動態鏈接庫就創建好了,我們可以把頭文件和生成的動態鏈接庫文件拷貝到指定的目錄調用即可。
下面我們來演示如何使用VS2015引用動態鏈接庫。
1.右鍵單擊解決方案名稱DynamicLibrary,“添加”,“新建項目”,“win32控制臺應用程序”,名稱為MyExecRefsDll,“確定”。
2.單擊“下一步”,選擇“應用程序類型”下的“控制臺應用程序”,不勾選“附加選項”下的“預編譯頭”,單擊“完成”。
PS:通過這種方式可以創建一個空的源程序MyExecRefsDll.cpp。
3.配置引用動態鏈接庫。右鍵單擊項目MyExecRefsDll下的“引用”,選擇“添加引用”,勾選列表中的MathFuncsDll,確定。
4.添加動態鏈接庫的頭文件路徑。 右鍵單擊項目MyExecRefsDll,單擊左側“配置屬性”下的“C/C++”節點下的“常規”選項,在右側“附加包含目錄”的值域中鍵入MathFuncsDll.h 頭文件所在的路徑(如E:\workplace\DllDemo\DynamicLibrary\MathFuncsDll)。
5.添加動態鏈接庫文件的路徑。 單擊左側“配置屬性”下的“調試”選項,在右側“環境”值域中鍵入PATH=<MathFuncsDll.dll文件的路徑>,例如這里MathFuncsDll.dll的實際路徑是PATH=E:\workplace\DllDemo\DynamicLibrary\Release\MathFuncsDll.dll,單擊“確定”。
6.復制下面代碼到MyExecRefsDll.cpp中覆蓋原來的內容:
// MyExecRefsDll.cpp // compile with: /EHsc /link MathFuncsDll.lib #include <iostream> #include "MathFuncsDll.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; system("pause"); return 0; }
7.按Ctrl+B或者選擇“生成”菜單中的“生成解決方案”可生成可執行文件。
8.右鍵單擊項目MyExecRefsDll選擇“設為啟動項目”,按Ctrl+F5或選擇“調試”菜單中的“開始執行(不調試)”來運行,結果如下:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475 請按任意鍵繼續. . .
關于“如何使用VS2015創建和使用動態鏈接庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。