网站制作公司兴田德润简介,微商加人的24种方法,公司名字大全最新,北京网站seo优化排名公司目录 visual studio 生成dll文件以及修改dll文件名称一、准备测试代码二、设置导出dll属性三、生成dll文件 .lib .dll .pdb 的简单介绍dll文件使用方式lib文件使用方式1、动态链接 #xff08;原理#xff09;2、静态链接#xff1a; visual studio 生成dll文件以及修改dll文… 目录 visual studio 生成dll文件以及修改dll文件名称一、准备测试代码二、设置导出dll属性三、生成dll文件 .lib .dll .pdb 的简单介绍dll文件使用方式lib文件使用方式1、动态链接 原理2、静态链接 visual studio 生成dll文件以及修改dll文件名称
Windows系统下Visual Studio可以通过.def文件创建dll。
一、准备测试代码
1.确定需要导出的函数test.cpp文件中定义如下
void fun1()
{return;
}
void fun2()
{return;
}
int main()
{return 0;
}2. 添加.def文件一般添加到源文件下面。*
在代码栏下面有一个“模块定义文件”即我们的.def文件 3.编写test.def文件
LIBRARY testEXPORTSfun1fun2文件添加完成下一步即可设置一些导出规则。
二、设置导出dll属性
4.在我们的项目上点击右键选择“属性”。修改一下配置
平台是64位还是32位要和我们的代码版本保持一致。代码版本查看如下 属性页设置“目标文件名”目标文件名需要和我们.def中的LIBRARY “test”保持一致。同时修改下面的“目标文件拓展名”为.dll
如果目标文件名不一致可能会报以下问题。导致输出的文件dll文件名不是自己设置的。
三、生成dll文件
5.设置完之后点击项目右键生成或者重新生成即可生成我们的dll文件。
.lib .dll .pdb 的简单介绍
.lib .dll文件都是程序可直接引用的文件前者就是所谓的库文件后者是动态链接库Dynamic Link Library)也是一个库文件。而.pdb则可以理解为符号表文件debug调试用。
dll文件使用方式
我们的dll文件可以直接使用调用windows的api LoadLibrary来加载dll根据头文件调用GetProcAddress 加载dll中的函数最后使用FreeLibrary释放。
lib文件使用方式
对于程序引用.lib文件一般有两种方式
1、动态链接 原理
这种方式的基本原理是lib文件中包扩了某一段程序函数的入口或者说是地址而他真正的机器码是在dll文件中
IDE链接的时候将.lib文件程序地址链接到源代码中程序运行时到相应位置环境变量path当前目录等寻找dll文件并执行其中的机器码。
所以这种引用方式一般需要的文件一般有三个.h,.lib,.dll生成的源程序也会比较小因为他只保存了函数地址但是这种方式总是会出现找不到xxx.dll这种问题。
如果这时候我们还有dll的源代码并且希望IED可以调试源码那么就需要.pdb文件了pdb文件中保存了dll的符号表所谓符号表可以理解为机器码这里是dll中的中插入的key与源代码文件的映射这样只要指定源码存放的路径IDE就会自动去找源码。
需要注意的是pdb文件和dll文件是配套的也就是说一旦dll文件有改动比如说重新生成pdb文件就必须做相应改变。
pdb文件也比较大程序运行时也会因为要完成映射而比较慢这也是release版与debug的区别。
2、静态链接
这种方式只需要lib文件当然头文件也是需要的。这种方式时候lib文件中有两个部分可以将文件后缀改为rar解压可以看到。第一部分就是和第一种方式中的key第二部分是.obj文件存储在obj文件夹下他相当与dll中的机器码只不过这个机器码是在链接的时候放入程序的而不是在程序运行时拿进来的。如果这时候我们也有源代码并且希望IED可以调试源码这很容易因为如果lib文件生成的时候模式是NDEBUG好像不是也可以,obj文件夹下是有一个xx.pdb这个pdb文件中的东西会被IED放入程序的pdb中所以直接指定源代码位置使用就可以了。