2024年2月19日发(作者:)
VS2010、VS2012中C++编写、调用dll一、编写生成DLL文件步骤一:打开vs2010步骤二:文件->新建->项目步骤三:点击win32(win32控制应用程序(名称输入你的工程名如我的是lxdll)—>确定
点击下一步步骤四:在应用程序类型选择DLL—>完成
接下来你的项目会有如下目录和文件
二、添加头文件在头文件中添加你要编写的函数声明操作如下(注:若你已编写完成就点击现有项,没有就点击新建项我的是新建项目如下操作点中头文件右击添加新建项选中头文件(.h)—>名称中输入你要起的名字如我的mydll添加
添加完成后编辑你的代码(注:是在你新建的头文件中如我在我的mydll.h编辑如下)
好接下来我们对函数进行实现函数的实现在源文件中添加步骤和添加头文件一样只是在选择文件类型时选择C++文件(.cpp)名称中填写你自定义的文件(我的如下)
进入编辑面板对我们新添加的文件进行编写(我的代码如下)注:stdafx.h头文件不添加太会提示如下错误
好编辑完成我们就来编译操作如下点击菜单栏中生成生成解决方案(B)生成成功如下好大功告成接下来我们测试下面的是显示调用三、显示调用DLL第一先建立一个工程步骤如上我建立的工程名为Dlltest但注意如下几点应用程序类型选择控制台应用程序附加选项选择空项目完成
然后右击源文件添加你要编写的.c文件(注:显示调用c++和c调用动态库写法一样)我添加的是dlltest.c文件接下来我面编写代码我的代码如下
接下来我们运行运行结果如下根据自己的dll路径位置设置路径接下来我们进行隐式调用四、隐式调用DLL第一步我们建立工程和上面一样不再叙述我建立的是testlxdll接下来我们添加头文件我们先添加用c程序测试我们编写的dll我添加的是名为head.h内容如下
其中是在生成dll时产生的lib是什么?如下解释:如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容;如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。看来我们的lib就是记录记录了dll中函数的入口和位置现在我们程序还不能打开lib,因为程序中没有,我们要导入它步骤如下右击项目添加—>现有项
找到你生成的.lib文件点击添加添加成功后我们项目栏中会有文件
接下来我们添加源文件记住扩展名为.c容如下(我起的为testlxdll.c)内
好我们开始运行他会提示很明显程序没有文件我们要手动添加找到你项目的位置有个debug目录记住是有exe文件的目录如我的添加完成我们在点击运行就成功了结果如下完成c调用dll我们来学习c++调用dll五、C++调用DLL我在当前工程下更改的将以前的源文件删除添加新的源文件注意我们添加的源文件后缀是.cpp我添加的是内容没有改变
就和.c内容一样如下头文件我们还要更改一下防止c++编译器给函数偷换名称只改动一个地方我们测试下OK测试通过如我们不改,会出现一下问题


发布评论