应甲方需要,方便项目集成,将项目打包成动态链接库,以便其他项目调用。
配置环境:Win10, VS2017 Community
1、首先打开VS2017,选择文件->新建->项目,在弹出的界面中选择window桌面和具有导出项的(DLL)动态链接库。输入名称和项目保存的路径位置,然后点击确定。
2、点击展开头文件和源文件,可以看到生成了DLLCreate.h、framework.h、pch.h以及源文件DLLCreate.cpp、dillmain.cpp、pch.cpp。其中dillmain.cpp、framework.h、pch.h、pch.cpp的文件名是创建时默认配置的,DLLCreate.h、DLLCreate.cpp文件名与创建项目时输入的名称保持一致。
3、将项目的模式改为Debug X64,点击生成->生成解决方案,得到结果如下图所示。同时在项目路径中也生成了一个x64文件夹,该文件夹用于后续存放与动态链接库相关文件。
4、接下来添加自己要实现的函数功能,为方便说明,这里以两数求和为例。首先打开DLLCreate.cpp和DLLCreate.h,可以看到系统已经生成了部分代码示例。我们可以根据示例进行函数编写。首先打开DLLCreate.h进行函数声明,定义int addfunction(int x,int y)。注意这里必须在函数前添加DLLCREATE_API,以表示该函数可在其他项目中以导出项方式进行调用。
然后切换到DLLCreate.cpp进行函数定义。
这里再强调一下如果你需要调用其他头文件,则需要将这些头文件写道pch.h中进行预编译。如下所示
5、完成代码部分的编写后,点击保存,点击生成->重新生成解决方案。然后你就会期盼地发现在之前提到的x64文件夹中的Debug文件夹中生成了你想要的动态链接库文件,包括.dll、.lib。至此已经成功完成动态链接库的生成。接下来就是调用,能调用成功才是王道。
6、按照之前类似的步骤,我们重新建立一个项目名为DLLCreate_test的项目。注意这里选择空项目。注意新建后默认是x86,要改为x64。
7、点击生成->生成解决方案,同样在DLLCreate_test文件夹下,会得到x64文件夹。将之前在这个路径D:\C++Projects\DllCreate\x64\Debug下生成的DLLCREATE.dll复制到D:\C++Projects\DLLCreate_test\x64\Debug路径下。
8、将D:\C++Projects\DllCreate\x64\Debug下生成的DLLCREATE.lib和之前创建动态链接库时的D:\C++Projects\DllCreate\DllCreate路径下的DllCreate.h,都复制到当前的测试项目路径D:\C++Projects\DLLCreate_test\DLLCreate_test中。
9、在头文件中添加DllCreate.h,在资源文件中添加DLLCREATE.lib,并在源文件中创建dlltest.cpp。注意模式改为x64!
10、在dlltest.cpp编写调用代码,包含DllCreate.h,编写主函数,调用addfunction。保存,点击生成->重新生成解决方案。
最后Ctrl+F5 运行代码。结果如下: