VS2015 C++创建并使用动态链接库(dll)
前言
学习的时候要求做一个dll,结果网上的都是高版本的vs,而且直接就有创建动态链接库的选项,而VS2015并没有创建动态链接库的选项,自己在创建动态链接库的时候使用了MFC的动态链接库结果用不了,然后查了好多才知道VS2015是用控制台创建dll的,而且MFC也可以调用。
在这里稍微写一个避免自己之后忘记怎么做。
1. 创建Win32控制台应用程序
创建动态链接库第一步是最为重要的。
首先在Visual C++中找到【Win32控制台应用程序】。
接下来会弹出配置窗体,在这个配置窗体必须选择合适的才可以,否则创建的dll文件无法被其他程序调用。
然后就会自动生成以下的文档。
在里面按格式编辑就好了。编辑好后运行。
2. 调用生成的dll文档
在生成成功后,把头文件(.h文件)、生成的动态库文件(.dll文件)和生成的静态库文件(.lib文件)拿出来。
2.1头文件处理(h文件)
将头文件放到一个专门放头文件的文件夹中,将这个文件夹路径作为【附加包含目录】添加到要调用的工程的【属性-C+±附加包含目录】。
动态链接库文件处理(dll文件)
将动态库复制一份移动到工程文件目录下。
静态链接库文件处理(lib文件)
将静态库文件放到一个专门放静态库的文件夹中,将这个文件夹路径作为【附加库目录】添加到要调用的工程的【属性-链接器-附加库目录】。
然后将静态库文件的文件名连带后缀一起复制到【属性-链接器-输入-附加依赖项】中。
这就可以使用了。
3. 可能出现的问题和解决方法
warning LNK4272: 库计算机类型“x64”与目标计算机类型“X86”冲突
这个错误通常伴随着“无法解析的外部符号”出现。
这是库使用的x64类型,但是调用的时候是使用的是x86类型,修改调试器平台并重新进行第二章节的操作。
左上角有调试器的位数,如果这个和生成库的工程的位数不同,就不能运行并报错。调试器的组合一共有: debug-x86/debug-x64/release-x86/release-x64。如果不能运行的话,并且配置没有错误,那么优先检查是不是调试器没有设置好。
直接运行已生成的程序时提示:由于找不到XX.dll,无法继续执行代码。重新安装程序可能会解决此问题。
直接运行已生成的程序也需要dll文件支持,所以要把dll文件移动到和该程序相同路径。如果debug生成的程序无法在其他电脑上运行,可能是因为其他电脑没有相应环境,需要使用release版本生成的程序才可以。