1.創建工程
2.在工程中添加類,創建.h和.cpp文件
//.h代碼
/**
請注意此代碼方法聲明中的 __declspec(dllexport) 修飾符。
這些修飾符使 DLL 能夠導出該方法以供其他應用程序使用。
*/
1 namespace MathFuncs 2 { 3 class MyMathFuncs 4 { 5 public: 6 // Returns a + b 7 static __declspec(dllexport) double Add(double a, double b); 8 9 // Returns a - b 10 static __declspec(dllexport) double Subtract(double a, double b); 11 12 // Returns a * b 13 static __declspec(dllexport) double Multiply(double a, double b); 14 15 // Returns a / b 16 // Throws DivideByZeroException if b is 0 17 static __declspec(dllexport) double Divide(double a, double b); 18 }; 19 }
//.cpp代碼
1 // MathFuncsDll.cpp 2 // compile with: /EHsc /LD 3 4 #include "MathFuncsDll.h" 5 6 #include <stdexcept> 7 8 using namespace std; 9 10 namespace MathFuncs 11 { 12 double MyMathFuncs::Add(double a, double b) 13 { 14 return a + b; 15 } 16 17 double MyMathFuncs::Subtract(double a, double b) 18 { 19 return a - b; 20 } 21 22 double MyMathFuncs::Multiply(double a, double b) 23 { 24 return a * b; 25 } 26 27 double MyMathFuncs::Divide(double a, double b) 28 { 29 if (b == 0) 30 { 31 throw new invalid_argument("b cannot be zero!"); 32 } 33 34 return a / b; 35 } 36 }
3.生成解決方案
4.使用生成的DLL
創建一個一般的win32工程,生成一個main.cpp文件並輸入如下代碼:
1 #include "MathFunsDll.h" 2 #include<iostream> 3 using namespace std; 4 5 int main() 6 { 7 cout<<MathFuncs::myMathFun::Add(1.1,2.2)<<endl; 8 return 0; 9 }
5.設置該工程的屬性
將之前生成的lib,dll和.h文件提出來放到一個文件夾(我放在桌面的temp文件其路徑為C:\Users\LC\Desktop\temp)
設置屬性:項目-->屬性-->c/c++-->常規-->附加包含目錄中輸入:C:\Users\LC\Desktop\temp
項目-->屬性-->連接器-->常規-->附加庫目錄:C:\Users\LC\Desktop\temp
項目-->屬性-->連接器-->輸入-->附加依賴項:Test.lib
屬性設置完畢,可以運行程序了。