一、VS2013动态库文件的创建
1、新建项目,win32,win32项目,输入项目名称,例如MakeDll。
2、”确定“——”下一步“,选择”DLL“选项,再点”完成“:
3、菜单栏选择”项目“——>”添加新项“,来创建头文件MakeDll.h。
在MakeDll.h中输入以下例子代码:
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 };
4、创建cpp文件:MakeDll.cpp。
在MakeDll.cpp中输入以下例子代码:
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 }
5、菜单栏选择”生成——>生成解决方案“。
此时在MakeDll项目所在目录下的Debug目录下的文件有MakeDll.dll和MakeDll.lib了。生成动态链接库文件OK。
二、使用刚才创建的动态库
1、新建项目——win32控制台应用程序,命名为UseDll,并创建一个lib文件,将MakeDll.lib引导库放进去,
并将MakeDll.dll放进debug下,编译器会自动搜素到这个文件,当然可以放在系统目录下。
2、告诉编译器头文件MakeDll.h的位置(见包含目录)、引导库位置(见库目录)及其名字(见附加依赖项)。注意,以下是添加后的显示结果。
图.包含目录的设置
图.库目录的设置
图.附加依赖项的设置
3、最后,动态库的测试程序如下,测试程序需要引用头文件:
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 }
运行结果:
至此测试成功!