Vs2015动态生成dll文件库并调用

VS2015 创建并使用自己的DLL(一个简单的示例)

一、创建DLL

(1)新建项目,选择Win32控制台应用程序
在这里插入图片描述
在这里插入图片描述

(2)选择DLL、空项目
在这里插入图片描述
在这里插入图片描述
(3)我这里选择生成的库为 Release x64版本,改为Debug就可生成对应debug版本的库,并添加头文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)添加函数定义
在这里插入图片描述

(5)生成对应版本的dll和lib
在这里插入图片描述
在这里插入图片描述

二、整理生成的DLL

(1)打开新建DLL的工程目录,建一个文件夹(看个人习惯)
在这里插入图片描述
在这里插入图片描述
(2)找到.dll,.lib文件
在这里插入图片描述
(3)将.h,.lib,.dll文件放在之前建的文件夹内
在这里插入图片描述

三、测试

(1)在解决方案中再新建一个项目,这样测试比较方便(如果自己在其它地方新建了一个解决方案来使用自己的库,除了下面属性的配置外,别忘了在.exe可执行文件目录中添加对应的dll)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)生成
在这里插入图片描述
在这里插入图片描述

(3)在工程属性中配置 包含目录、库目录、附加依赖项(如果比较懒的话,之前的JLib文件夹可以不用建,这里可以直接填写.h和.lib在JAlgorithm工程中对应的路径,这样每次修改生成新库后就不用再去拷贝相应的.h和.lib文件,这样测试就很方便)
在这里插入图片描述
在这里插入图片描述
(4)设为启动项目
在这里插入图片描述
(5)包括头文件,测试
在这里插入图片描述

单独使用

(1)用同样的方法生成Debug版本的库,我这里把两个库分开放
在这里插入图片描述
在这里插入图片描述
注:生成带d的库(也就是改名),在属性中改一下目标文件名就OK了,注意是Debug
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
(2)新建Win32控制台应用程序
在这里插入图片描述
(3)把之前的整理文件夹拷贝到工程目录下,并拷贝对应版本的dll到相应位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)配置属性 以Debug为例,Release同样配置
在这里插入图片描述
在这里插入图片描述
(5)测试
在这里插入图片描述
在这里插入图片描述

                                </div><div data-report-view="{&quot;mod&quot;:&quot;1585297308_001&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/Bryan_QAQ/article/details/92798098&quot;,&quot;extend1&quot;:&quot;pc&quot;,&quot;ab&quot;:&quot;new&quot;}"><div></div></div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-ff98e99283.css" rel="stylesheet">
                            </div>
使用VS2015编译和调用动态链接dll 1. 首先建工程,选择dll,记得勾上“导出符号” 后面不用自己搞那些宏定义会省事很多。 建立工程myDll,记得勾上“导出符号” 类型选择dll 2. IDE自动生成的代码已经把整个架构弄好了,其中和项目同名的.h和.cpp文件就是我们自己写代码的地方了。我想写的dll是导出一个类,在这里我就直接在它自动生成的CmyDll类上面改了。 myDll.h myDll.cpp 在mydll.h和mydll.cpp中给类添加成员函数 //mydll.h class MYDLL_API CmyDll { public: CmyDll(void); // TODO: 在此添加您的方法。 int myFunction(int a, int b); }; //mydll.cpp int CmyDll::myFunction(int a, int b) { return a*b; } 3.编译的时候我选择了release,这里可以用默认的debug也行 在mydll.h和mydll.cpp中给类添加成员函数 最后生成解决方案后产生的mydll.lib和mydll.dll就是我们需要的二进制文件了。lib文件是编译是要用的,而dll调用这个的程序运行时需要的。 调用dll 1.重新建立一个工程 这回选择普通的控制台程序就行了。我建了个名为myDllCall的工程。 2.把的头文件include进来,以及连接lib文件 其中 include进来的 myDll.h 和 **#pragma comment()**的lib根据自己的路径写。 #include "stdafx.h" #include "../../myDll/myDll/myDll.h" //头文件 #pragma comment(lib,"../../myDll/Release/myDll.lib") //调用自己写的外部 #include int main() { CmyDll mydll; int a, b; std::cin >> a >> b; std::cout << mydll.myFunction(a, b) <> a >> b; std::cout << mydll.myFunction(a, b) << std::endl; return 0; } 3.dll放到可执行文件同一目录下面 刚刚的代码直接编译没问题,运行会报错. 直接编译没问题,运行会报错 原因是dll要和生成的可执行文件在同一个目录下,我把mydll.dll放进去之后就解决了。 我们成功的在自己的工程里调用了外部的类 可以看到我们成功的在自己的工程里调用了外部的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值