社区
进程/线程/DLL
帖子详情
如何让编译出的新版dll,可以直接替换旧版本的dll
sophyyoung
2013-04-12 01:37:05
其实就是本来有个 a.lib和a.dll,是别人开发的,用户程序为b.exe,使用了a.dll。
之后我重新写了个新的lib和dll,接口函数都是一样的,考虑到兼容性,依然取名 a.lib和a.dll,可是却不能直接替换b.exe里面的a.dll,b还是需要包含新的a.lib,然后rebuild一下,才行,不知道有没有办法可以让在不重新编译用户程序的情况下,编写新的 dll呢?
...全文
1389
10
打赏
收藏
如何让编译出的新版dll,可以直接替换旧版本的dll
其实就是本来有个 a.lib和a.dll,是别人开发的,用户程序为b.exe,使用了a.dll。 之后我重新写了个新的lib和dll,接口函数都是一样的,考虑到兼容性,依然取名 a.lib和a.dll,可是却不能直接替换b.exe里面的a.dll,b还是需要包含新的a.lib,然后rebuild一下,才行,不知道有没有办法可以让在不重新编译用户程序的情况下,编写新的 dll呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2013-06-06
打赏
举报
回复
只要新的DLL和旧的DLL没有本质差别(实现相同功能,同为32BITS或者同为64BITS,没有错误),完全可以直接替换。 不能替换, 是导出函数名有改变或者导出方式不同,或者函数参数不同,函数调用约定不同等造成的。
weiql6
2013-04-19
打赏
举报
回复
不能吧,按楼主所说的情况,应该不需要重新rebuild的。我试了下,是不需要的。
chentao
2013-04-18
打赏
举报
回复
1
DLL中得函数在EXE中是隐式链接的,需要用到和DLL对应的导入库lib文件,并且编译成EXE时,这些导入库的信息会被写入到EXE的导入段,所以才不能直接替换。
sophyyoung
2013-04-12
打赏
举报
回复
唉,白开心一场,确实不能用,我刚才用NI 公司的labwindows 写的用户程序,debug能用,但release 在退出时有个如下错误: FATAL RUN-TIME ERROR: Unknown source position, thread id 0x00001ED4: The program has caused a 'General Protection' fault at 001B:686591AD. 使用windbg时错误是:Access violation - code c0000005 (first chance) 于是我转用 vs2008 里的 vc++ 写的用户程序,这下界面都出不来了。说的错误是: First-chance exception at 0x00000003 in AutoTest.exe: 0xC0000005: Access violation. Unhandled exception at 0x00000003 in AutoTest.exe: 0xC0000005: Access violation. 看起来错误都是一样的。 使用新的lib,重新编译一下就可以了。没有这样的问题了。。
sophyyoung
2013-04-12
打赏
举报
回复
看过了,也试过了,之前试的时候确实不行的,怎么今天试了就可以了呢! 主要是我用 depends 看的,他们的函数名都是一样的没错,但每个函数后面的 entry point 不同,我就以为不可以用了。
一个傻冒
2013-04-12
打赏
举报
回复
如果是delphi写的dll,那要改些东西才行。 楼主用工具先确认一下是用语言写的。用些查壳的工具,或者反汇编过来看看,也大概能知道。
无言猪
2013-04-12
打赏
举报
回复
用depends看一下两个dll的函数名一致不,有些不注意的地方也会引起导出函数名的不一直,比如extern "C", 或者用def文件重写了函数名的.
sophyyoung
2013-04-12
打赏
举报
回复
原来的dll都不知道拿什么编译的,这样都可以吗?
jimette
2013-04-12
打赏
举报
回复
引用 1 楼 ydfivy 的回复:
只要DLL的接口函数一定,只要符合这个调用函数,DLL就可以被调用。你的为啥要重新编译一下呢?
是这个道理 不能是把接口参数改了把?
一个傻冒
2013-04-12
打赏
举报
回复
只要DLL的接口函数一定,只要符合这个调用函数,DLL就可以被调用。你的为啥要重新编译一下呢?
易语言源码ProgressBar
易语言源码ProgressBar
stm32单片机项目资料课程设计文档C语言程序代码原理图电路PCB实例对射式深度红外传感器DXP资料及其相关资料
stm32单片机项目资料课程设计文档C语言程序代码原理图电路PCB实例对射式深度红外传感器DXP资料及其相关资料
ofd阅读器(c#版 全功能 ofd转pdf图片)
源码链接: https://pan.quark.cn/s/a4b39357ea24 依据ofd电子文档的国家标准进行开发,这款阅读器成功达成了标准所规定的大部分要求。 在数科与福昕之外,它被视为第三个功能相对完备的阅读工具。 用户可以毫无成本地免费使用本程序! 本软件的主要特性包括:1. 支持将ofd文件格式
直接
转换成pdf文档或图像文件。 2. 提供屏幕截图功能。 若想获取最
新版
本的软件,可以加入QQ群877371250。 本公司致力于进行ofd相关的技术研究,能够为客户提供全面的ofd解决方案!
C++编程基础语法与高级特性综合实践:从银行存款计算到面向对象设计的全流程开发案例解析
内容概要:本文档为一份《计算机程序设计语言(C++)》课程的实验报告,涵盖了从基础语法到面向对象编程的多个实验内容。实验内容包括基础语法练习(如银行存款计算、数值比较、科学计算)、控制结构(分支与循环,如闰年判断、素数判定、Kaprekar黑洞数)、数组操作(一维与二维数组的排序、查找、极值计算、杨辉三角)、函数定义与应用(递归、参数传递、函数重载)以及面向对象编程(类与对象的设计、继承、多态性、文件操作)。文档详细展示了每个实验的任务描述、具体C++代码实现、测试结果及实验分析,体现了从简单到复杂、逐步深入的学习路径。; 适合人群:具备C++基础语法知识,正在学习或巩固程序设计课程的在校大学生及初级编程学习者。; 使用场景及目标:①作为C++课程的配套实验指导材料,帮助学生通过实践掌握编程基础知识和核心算法;②用于自学练习,提升对循环、数组、函数和面向对象等核心概念的理解与编码能力。; 阅读建议:学习者应结合文档中的代码实例,动手在编程环境中逐一实现并调试,重点关注代码逻辑、边界条件处理和算法效率,通过对比预期输
出
与实际输
出
加深对知识点的掌握。
万能驱动包(windows98版)
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 windows98通用驱动合集 1、适配性 该软件的适配性能十分卓越,其适用范畴极为广阔,能够在多种计算机系统平台上运行。 2、系统优化 对系统运行状态进行精细调节,频繁运用稳定性能优化工具。 3、监测功能 提升监测效能,对软件运行等状态进行细致考量,且监测的项目极为周全。 4、可靠性 自身的稳定性表现以及软件的长期使用,均表现
出
色。 万能驱动合集离线版本win98特别之处 1、【离线功能】支持该软件的快速获取,并且离线模式下亦可使用,极为便捷。 2、【安全性】持续维护软件的安全性能,在使用层面上非常值得信赖。 3、【便捷性】软件的整体流程及操作复杂度,均极为简单,非常经久耐用。 4、【数据备份】支持通过添加备份功能,在使用驱动过程中,关于空间占用等问题进行删除与恢复操作,效果显著。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章