文章目录
- 前言
- 一、生成dll和lib
- 方式1
- 方式2
- 二、调用dll和lib
- 三、测试
- 总结
前言
VS生成dll和lib文件,以及如何调用,是基本的技能,这次对这个做一下总结。建议先深入理解一下什么是dll和lib文件,可以参考这篇博客。
一、生成dll和lib
属性->配置属性->常规->配置类型,这里有选项,可以生成dll和lib文件。
方式1
直接在这里生成lib文件,但是只产生一个.lib文件,并且比较大,因为它包含了库代码的一份完整拷贝,相当于lib和dll的全部功能(所以这样再生成dll,已经显得有点多余了),这种生成的lib文件,在被调用时必须放在一起编译后才能正常运行。这样很不方便,毕竟我们想的是在更新了库之后,直接替换dll就行,不用再次编译
方式2
生成dll库,同时附带生成lib,这样才是我们想看到的,也即更新了库之后,直接替换dll就行,不用再次编译
1.导出类:这里的Cdll就是类名,或者称之为你接口所在的类名,注意要加DLL_API 哦
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif// 导出类
class DLL_API Cdll {
public:Cdll(void);// TODO: 在此添加您的方法。
};
2.导出函数:
DLLAPI int fun(int m);
这里附带讲一下,VS生成DLL没有产生lib,可以添加def文件
在工程上右键 -> 添加 -> 新建项 -> 选"模块定义文件(.def)" -> 随便输入个名字 -> 添加
这个方法我试过,但是好像不太行…生成的dll和lib都有问题…
二、调用dll和lib
1.添加路径:属性->配置属性->VC++目录>库目录
2.添加库名称:属性->配置属性->链接器>输入
三、测试
1.方式1生成的,那就直接配置lib所在的路径以及名称,然后把生成的exe文件以及lib文件放到一个文件夹下,测试exe文件是否成功运行
2.如果是按照方式2生成的,那么在配置lib的路径和名称后,将生成的exe文件以及dll文件放在一个文件夹下,测试exe文件是否成功运行,如果缺失dll文件就会报错,这个才是我们真正需要的效果
总结
总结了一下VS生成dll和lib的方式以及调用方式,后续有新的发现再补充~~