如何解决64位进程调用32位dll

乐乐434 2014-08-06 10:21:52
可否给个详细的案例或说明 有个网址:http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html那里的东西 你们不要发 这个根本看不懂 不要把那里的东西复制过来 谢谢 。 请大神指教 要详细一点的
...全文
3342 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
海宏AA 2015-08-21
  • 打赏
  • 举报
回复
除了程序隔离没办法,用消息、内存区、socket之类的交互。
threenewbee 2014-08-06
  • 打赏
  • 举报
回复
看不懂是你的问题。 这篇文章的思路是对的,就是跨进程调用。用一个32bit的进程外COM作为代理。 当然,你也可以不用COM这种过时且繁琐的东西,用.net写一个编译为32bit的程序来代理,用socket wcf 管道或者任何你熟悉的方式和你的主程序交互。
Saleayas 2014-08-06
  • 打赏
  • 举报
回复
64 位调 32 位的方法就是使用一个跨平台的进程。 也就是说,需要创建一个 和 使用的 DLL 一致的平台进程。 比如, 64 为需要调用 32 位的 DLL,那么需要创建一个 32 位的进程。 然后,让这个进程来调用 32 位的 DLL。 你的 64 位程序和这个 32 位的进程通过进程间通信的方式呼叫函数。 比如说呼叫一个 DLL 中的函数,在你的 64 位进程中,把呼叫信息打包,发送给 32 位进程。 32 位进程得到这个数据包,呼叫 DLL 执行操作,在把结果返回到 64 位进程。 你说的那个网址上的方法是 Windows 封装的一个方式。 她使用 接口 和 RPC 隐藏呼叫的复杂性。 比如,如果创建远程实例,引用锁定,线程安全等等。 Windows API 呼叫内核都是这样的。RPC 是 Windows 的基本操作。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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