32位软件如何调用64位的DLL

曾经我在 2014-03-06 05:01:54
我现在有一个32位的VB软件,想要在64位系统上,64位的驱动已经安装成功。
现在的问题是,32位的软件根本不能调用64bit的DLL。
大家有什么解决的办法么?

我已经做过了几个方案:
1.使用VS2008打开VB软件,更换目标平台为x64,编译有一大堆的错误。这些错误是因为有很多软件的控件就只是32位的,根本不能在64位下编译。 解决这些错误,还不如重新编写这个软件。 所以这个方案放弃了。
2.使用64bit的进程外COM来包装64位的DLL。 这个方案目前没有做成功,我发现32bit的软件调用不了64bit的COM-----网上很多人说是可以的。所以我认为是自己的调用方法有问题。

大家有谁碰到过类似的问题么?如果有谁有现成的样例,能够给我发一份?我的qq 571908699,多谢。
...全文
2937 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
com不行 用管道或者socket的方式
许文君 2014-04-16
  • 打赏
  • 举报
回复
让A、B语言代码的输入输出重定向到文本文件这种属于效率极其低下的方式,在商业软件中除非万不得已,否则应尽量避免这种方式通讯,你既然要求跨平台了,那COM肯定是不行的。
曾经我在 2014-04-16
  • 打赏
  • 举报
回复
回答楼上的问题: 1.现在讨论的问题不是跨语言的问题,是跨平台的问题。 2.“A语言代码直接调用B语言代码库"为什么是复杂,容易出错的傻事呢? 我提供的库文件是使用C++语言编写的,但是我必须保证不同的语言都能够调用,因为我无法强制要求客户就用某种语言。例如,我现在的DLL库可以使用VB调用,使用VC调用,或者使用LABView调用,组态王调用。 3.写文本和读文本是一种交互的方式,就是速度太慢了。 对于数据传输来说,时间就都耽误了。
赵4老师 2014-04-09
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 将以上A语言替换为32位软件,B语言替换为64位软件。
许文君 2014-04-09
  • 打赏
  • 举报
回复
无法向上兼容,因此无法直接加载,必须通过与64位dll宿主程序交互才能实现
曾经我在 2014-04-08
  • 打赏
  • 举报
回复
这个问题最终是这样解决的:我使用WDF重新编写了驱动程序,在32bit平台上调试通过之后,更换到64bit平台上,很容易就生成了64bit的驱动文件,在64bit平台上,完全可以使用32bit的DLL和32bit的进程。因此我的软件不用做任何改动,在64bit平台上直接使用。 因为我对COM技术不是很熟悉,所以我使用了一种曲线救国的方式。 总结: 32bit的进程是可以调用64bit的驱动(sys文件)的;但是32bit的进程不能调用64bit的进程,例如我的32bit的VB软件就不能够调用64bit的DLL。 joelin 571908699
fly4free 2014-03-06
  • 打赏
  • 举报
回复
与64位驱动的驱动对象通信,不一定非要是64位进程,32位进程也是可以的。
oyljerry 2014-03-06
  • 打赏
  • 举报
回复
32bit没法加载64bitdll,你要搞个64bit的进程
曾经我在 2014-03-06
  • 打赏
  • 举报
回复
我也是这个思路,但是实际操作起来有很多困难。 我现在做实验:64bit的进程能够调用32bit的COM组件,但是32bit的进程无法调用64bit的COM组件。 你有例程么? 32bit的软件调用64bit的COM组件的? 我在网上死命搜索,都是64bit软件调用32bit的COM的。 如果你有的话,麻烦能给我发一份么?多谢!
Saleayas 2014-03-06
  • 打赏
  • 举报
回复
64 位 DLL 要做成进程外组件。 其实最简单的办法,创建一个 64 位的 exe 或 dll,然后被32 进程呼叫运行,通过信道通信。

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧