VS动态库dll的创建和生成,以及调用

时间:2024-03-19 16:10:53

一、VS2013动态库文件的创建

1、新建项目,win32,win32项目,输入项目名称,例如MakeDll。

VS2013动态库dll的创建和生成,以及调用

 

2、”确定“——”下一步“,选择”DLL“选项,再点”完成“:

VS2013动态库dll的创建和生成,以及调用

 

3、菜单栏选择”项目“——>”添加新项“,来创建头文件MakeDll.h。

MakeDll.h中输入以下例子代码:

VS2013动态库dll的创建和生成,以及调用
 1 #ifdef DLL_API//如果已经定义就什么都不做
 2     //nothing to do
 3 #else //否则定义DLL_API
 4     #define DLL_API __declspec(dllexport)    //_declspec(dllexport):导出标志
 5 #endif
 6 #include <iostream>
 7 using namespace std;
 8 DLL_API int add(int a, int b);//导出单独的函数
 9 class DLL_API Point    //导出类,其自身所有函数都将被导出,可单独对某些类函数导出
10 {
11 private:
12     float x, y;
13 public:
14     Point();
15     void SetPoint(float a, float b);
16     void DisPlay();
17 };
VS2013动态库dll的创建和生成,以及调用

 

4、创建cpp文件:MakeDll.cpp。

MakeDll.cpp中输入以下例子代码:

VS2013动态库dll的创建和生成,以及调用
 1 #include "MakeDll.h"
 2 
 3 int add(int a, int b)
 4 {
 5     return a + b;
 6 }
 7 
 8 Point::Point()
 9 {
10     x = 0.0f;
11     y = 0.0f;
12 }
13 
14 void Point::SetPoint(float a, float b)
15 {
16     x = a;
17     y = b;
18 }
19 void Point::DisPlay()
20 {
21     cout << "x=" << x << endl;
22     cout << "y=" << y << endl;
23 }
VS2013动态库dll的创建和生成,以及调用

 

5、菜单栏选择”生成——>生成解决方案“。

此时在MakeDll项目所在目录下的Debug目录下的文件有MakeDll.dllMakeDll.lib了。生成动态链接库文件OK。

 

二、使用刚才创建的动态库

1、新建项目——win32控制台应用程序,命名为UseDll,并创建一个lib文件,将MakeDll.lib引导库放进去,

VS2013动态库dll的创建和生成,以及调用

并将MakeDll.dll放进debug下,编译器会自动搜素到这个文件,当然可以放在系统目录下。

VS2013动态库dll的创建和生成,以及调用

2、告诉编译器头文件MakeDll.h的位置(包含目录)、引导库位置(库目录)及其名字(附加依赖项)。注意,以下是添加后的显示结果。

VS2013动态库dll的创建和生成,以及调用

                         图.包含目录的设置

VS2013动态库dll的创建和生成,以及调用

                        图.库目录的设置

 VS2013动态库dll的创建和生成,以及调用

                        图.附加依赖项的设置

 

3、最后,动态库的测试程序如下,测试程序需要引用头文件:

VS2013动态库dll的创建和生成,以及调用
 1 #include <iostream>
 2 #include "MakeDll.h"
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int a = 10;
 8     int b = 2;
 9     int c = add(a, b);
10     cout << c << endl;
11     Point p1, p2;
12     p2.SetPoint(5.6f, 7.8f);
13     p1.DisPlay();
14     p2.DisPlay();
15     getchar();
16     return 0;
17 }
VS2013动态库dll的创建和生成,以及调用

运行结果:

VS2013动态库dll的创建和生成,以及调用

至此测试成功!