最近才开始学习写算法,需要写一个动态库实现算法,在查阅了网上很多资料后发现还是有点晕,于是参考了visual studio的帮助文档,发现里面有介绍如何建立一个动态算法库并调用的说明。于是根据该例子,自己建了人生中的第一个动态算法库,成功完成第一个算法库任务。这里不详细介绍动态库和静态库的区别了,仅记录下在VS2013中实现动态算法库的步骤。
1、打开vs2013,文件---->新建项目----->win32 控制台应用程序(输入项目名称dlldll、确定)---->下一步----->(应用程序类型选择)DLL、(附加选项勾选)导出符号---->完成
这时项目就建好了,可看到生成了三个头文件(dlldll.h\stdafx.h\targetver.h)和三个源文件(dlldll.cpp\dllmain.cpp\stdafx.h),此时不需要关注其他文件,我们的动态库主要实现代码写到dlldll.cpp,在dlldll.h中声明即可。自动生成的dlldll.cpp和dlldll.h已经给出了各种导出类型(函数、变量、类)的声明和实现例子,代码如下:
dlldll.h中声明:
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLLDLL_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// DLLDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef DLLDLL_EXPORTS