首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

一个.exe可执行程序依赖于一个.DLL库, 在运行, 怎样写代码用一个新的DLL库替换正在运行的DLL库

2013-06-26 
一个.exe可执行程序依赖于一个.DLL库, 正在运行, 怎样写代码用一个新的DLL库替换正在运行的DLL库?本帖最后

一个.exe可执行程序依赖于一个.DLL库, 正在运行, 怎样写代码用一个新的DLL库替换正在运行的DLL库?
本帖最后由 lmyluk 于 2013-06-20 16:56:19 编辑 一个.exe可执行程序依赖于一个.DLL库, 正在运行, 怎样写代码用一个新的DLL库替换正在运行的DLL库?
最好是用QT库实现这个功能,有相关功能的QT开源模块也行,用C++库实现也行.在线等各位无私奉献的高手光临.
说明一下:新的DLL只是稍微修改一下旧的DLL的一些细节,加载进去不会影响.exe程序运行的. 替换DLL库 Qt 开源 C++
[解决办法]
在window上要是写死依赖的话,这样是不可能的。
用qt的话,可以考虑把dll做成插件,当你需要更新这个dll时,把插件先卸载了,更新完后再加载即可。qt插件的实现,参考qt的帮助。
也可以用系统的API 动态加载 你后期可能会更新的库,同样在更新时先卸载,然后再加载。具体可参考动态库的加载。
[解决办法]
用插件的形式就是动态加载库。
[解决办法]

引用:
Quote: 引用:

动态链接库在程序运行的时候就已经加载到内存了,所以是没有办法换掉的,除非你改内存。
动态加载库用QLibrary就可以了,帮助文档有详细的例子。

怎样写代码测试能不能替换正在运行的动态库呢?

替换不就是copy一个新的过来,试试不就知道了。
windows里是不行的,隐式调用dll,肯定没办法在不退出程序的时候替换dll。

热点排行