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

属性设置完毕,可以运行程序了。