VS2008生成DLL並使用


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

屬性設置完畢,可以運行程序了。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM