搜索
bottom↓
回复: 8
打印 上一主题 下一主题

请教多个dll文件在一个release目录下EXE正常运行的方法

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2023-12-7 00:14:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
EXE在win7下使用A.dll,在win10下使用B.dll,有什么方法可以把A.dll和B.dll放一个目录下,在win7和win10下都适用?

出0入0汤圆

2
发表于 2023-12-7 00:27:52 | 只看该作者
你自己判断是什么系统,再自己加载不同的dll不就可以了吗

出0入0汤圆

3
 楼主| 发表于 2023-12-7 00:37:02 | 只看该作者
xmlbb 发表于 2023-12-7 00:27
你自己判断是什么系统,再自己加载不同的dll不就可以了吗
(引用自2楼)

判断了操作系统后,A和B的文件名是一样的,怎么处理?

出0入0汤圆

4
发表于 2023-12-7 00:45:03 | 只看该作者
本帖最后由 xmlbb 于 2023-12-7 00:47 编辑
zw_7627 发表于 2023-12-7 00:37
判断了操作系统后,A和B的文件名是一样的,怎么处理?
(引用自3楼)


文件名一样你根本放不到同一个目录呀,系统都限制死了,你不行就改个不同名字不就好了。

出200入2554汤圆

5
发表于 2023-12-7 01:08:26 | 只看该作者
回答这个问题前,得问一句:你有 EXE 的源码吗?

如果可以重编译 EXE,使用 LoadLibrary 动态加载就啥事没有,使用静态加载才会造成没法指定 dll 文件的问题;

如果没法重编译 EXE,这基本就是做个 setup 程序,win7 下重命名 dll(7),win10 下重命名 dll(10).
然后 setup 再主动加载 EXE,类似于安装完成立即运行。

出0入984汤圆

6
发表于 2023-12-7 13:08:14 | 只看该作者
做个中间的dll wapper,这个dll转发函数到实际真正用的dll上就行了

出50入135汤圆

7
发表于 2024-3-15 17:50:58 | 只看该作者
Himem 发表于 2023-12-7 13:08
做个中间的dll wapper,这个dll转发函数到实际真正用的dll上就行了
(引用自6楼)

这个主意好

出0入33汤圆

8
发表于 2024-3-15 19:07:19 来自手机 | 只看该作者
这个如果不改exe的话,一般通过安装程序实现。安装时判断系统类型放对应的文件。

出0入0汤圆

9
 楼主| 发表于 4 天前 | 只看该作者
t3486784401 发表于 2023-12-7 01:08
回答这个问题前,得问一句:你有 EXE 的源码吗?

如果可以重编译 EXE,使用 LoadLibrary 动态加载就啥事没 ...
(引用自5楼)

忙别的一阵子,刚把inno setup整好了。发现还是不能一个上位机可以兼容多个操作系统。
源码中使用的是静态调用,dll直接放realease下就可以直接使用。动态调用的时候,h和lib都不使用,只loadlibrary dll,发现有的变量定义没有h文件,编译不通过了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 18:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表