visual studio 生成dll文件以及修改输出dll文件名称操作

这篇具有很好参考价值的文章主要介绍了visual studio 生成dll文件以及修改输出dll文件名称操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

visual studio 生成dll文件以及修改dll文件名称

Windows系统下Visual Studio可以通过.def文件创建dll。

一、准备测试代码

1.确定需要导出的函数,test.cpp文件中定义如下

void fun1()
{
	return;
}
void fun2()
{
	return;
}
int main()
{
	return 0;
}

2. 添加.def文件,一般添加到源文件下面。*
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

在代码栏下面有一个“模块定义文件”,即我们的.def文件
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide
3.编写test.def文件

LIBRARY "test"

EXPORTS
 fun1
 fun2

文件添加完成,下一步即可设置一些导出规则。
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

二、设置导出dll属性

4.在我们的项目上点击右键,选择“属性”。修改一下配置
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

平台是64位还是32位要和我们的代码版本保持一致。代码版本查看如下:
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide
属性页设置“目标文件名”,目标文件名需要和我们.def中的LIBRARY “test”,保持一致。同时修改下面的“目标文件拓展名”为.dll
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

如果目标文件名不一致可能会报以下问题。导致输出的文件dll文件名不是自己设置的。
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

三、生成dll文件

5.设置完之后,点击项目右键,生成或者重新生成,即可生成我们的dll文件。
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide
visual studio 生成dll文件以及修改输出dll文件名称操作,visual studio,ide

.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中,所以直接指定源代码位置使用就可以了。文章来源地址https://www.toymoban.com/news/detail-629156.html

到了这里,关于visual studio 生成dll文件以及修改输出dll文件名称操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过Microsoft Visual Studio将.c源文件编译成.dll动态链接库

    手里有一个.c源文件,想用VS2017将其编译成.dll,直接在VS2017里打开源文件无法执行编译,因为VS2017不能编译杂项文件。 首先,新建-项目-Visual C++-Windows桌面,选择“动态链接库(DLL)”,给定项目名称和存放位置,点确定。然后在“解决方案资源管理器窗口”,右击“源文件”

    2024年02月12日
    浏览(58)
  • Visual Studio2022 生成可执行文件

    解决方案改为 Release : 找到项目 → rightarrow → 项目名称属性,如示例项目的名称为 Project1 ,就找到下图所示的选项并进入: 在配置属性 → rightarrow → C/C++ → rightarrow → 代码生成中,找到运行库,并设为 多线程(/MT) : 如果想要修改生成的 .exe 文件的名字,在配置属性

    2024年02月12日
    浏览(44)
  • 求教!visual studio2012无法生成exe文件

    1------ 已启动生成: 项目: Project1, 配置: Release X64 ------ 1d:文档visual studio 2012ProjectsProject1Project1Project1.vcxproj : error MSB4014: 生成已意外停止,因为发生内部故障。 1d:文档visual studio 2012ProjectsProject1Project1Project1.vcxproj : error MSB4014: Microsoft.Build.Exceptions.BuildAbortedException: 已取消

    2024年02月16日
    浏览(62)
  • 如何查看.dll文件函数接口?(DLL动态链接库)(查看动态链接库、查看接口、查看函数)(Visual Studio的dumpbin工具)(Dependency Walker)

    查看DLL(动态链接库)文件的接口,通常需要使用一些专门的工具。这里有两个比较常见的方法: Dependency Walker 使用Dependency Walker:Dependency Walker是一个免费的实用工具,可以列出DLL文件中的所有导出函数以及它们可能依赖的其他DLL。只需在Dependency Walker中打开想查看的DLL文件

    2024年02月08日
    浏览(56)
  • 微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件

    大小:75.30 MB类别:文字处理 本地下载          Markdown 是一种轻量级标记语言,当开发者想要格式化代码但又不想牺牲易读性时,Markdown 是一个很好的解决方案,比如 GitHub 就使用 Markdown 来展示说明文档,也就是 .md 文件。 微软近日宣布,根据开发者的反馈,在 Visual

    2024年02月11日
    浏览(49)
  • 诊断DLL——Visual Studio安装与dll使用

    官方下载地址:https://visualstudio.microsoft.com/zh-hans/ 本专栏使用 Win10 x64 操作系统安装 Visual Studio 2022 无论是用CANoe还是周立功软件,亦或是Diva自动化测试,都需要加载27服务的安全算法,存在一种载体能够动态修改且被调用的库文件,否则对于无序的安全种子来说,没有太多的

    2024年02月07日
    浏览(88)
  • Android Studio修改应用名称及应用图标

    找到src/main/AndroidManifest.xml文件: android:label后面配置的就是应用名称配置路径或应用名称。 方式1:android:label=\\\"xxx应用\\\"(应用名称显示xxx应用) 方式2:android:label=\\\"@string/app_name\\\"(ctrl+鼠标左键查看string.xml文件,应用名称显示\\\"app name\\\"字符串配置的值。 1、右键点击应用项目文件

    2024年02月11日
    浏览(57)
  • visual studio编写DLL,python调用

    选择第一个c++ DLL, 然后项目源文件下右击新建项,这里名字随便取,在代码中输入一下内容: 在visual studio的项目右击属性 选择不使用编译头,然后点击点击生成解决方案 就可以生成DLL文件了 (PS:前面截图代码忘记添加EXPORT,请参考代码框的代码) 然后python调用即可 如果

    2024年02月09日
    浏览(47)
  • visual studio解决bug封装dll库

    配置属性/常规/输出目录 链接器/常规/输出dll文件 链接器/调试/输出程序数据库pdb文件 链接器/高级/导入库 然后修改更新说明 更新说明格式如下: 4.将库提交到FTP每日更新库文档下 和测试交接、提交解决禅道bug

    2024年02月07日
    浏览(46)
  • Visual Studio 无法下载更新等问题的一种解决方法(aka.ms 无法连接访问/隐私错误、修改 DNS 及 hosts 文件也无效)

    ( 只是尝试一种方法的话,此部分的辛酸可以不看 ,具体见后面的 我的解决方法 ) 某天突然发现 Visual Studio 无法下载、更新,主要是 Visual Studio Installer 进度条加载一点后显示错误或者干脆进度为0再显示网络错误。 尝试了一大堆解决方法:修改 hosts 文件、修改 DNS、其它的

    2024年02月07日
    浏览(132)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包