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

问题描述

可否给个详细的案例或说明有个网址:http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html那里的东西你们不要发这个根本看不懂不要把那里的东西复制过来谢谢。请大神指教要详细一点的

解决方案

解决方案二:
64位调32位的方法就是使用一个跨平台的进程。也就是说,需要创建一个和使用的DLL一致的平台进程。比如,64为需要调用32位的DLL,那么需要创建一个32位的进程。然后,让这个进程来调用32位的DLL。你的64位程序和这个32位的进程通过进程间通信的方式呼叫函数。比如说呼叫一个DLL中的函数,在你的64位进程中,把呼叫信息打包,发送给32位进程。32位进程得到这个数据包,呼叫DLL执行操作,在把结果返回到64位进程。你说的那个网址上的方法是Windows封装的一个方式。她使用接口和RPC隐藏呼叫的复杂性。比如,如果创建远程实例,引用锁定,线程安全等等。WindowsAPI呼叫内核都是这样的。RPC是Windows的基本操作。
解决方案三:
看不懂是你的问题。这篇文章的思路是对的,就是跨进程调用。用一个32bit的进程外COM作为代理。当然,你也可以不用COM这种过时且繁琐的东西,用.net写一个编译为32bit的程序来代理,用socketwcf管道或者任何你熟悉的方式和你的主程序交互。
解决方案四:
除了程序隔离没办法,用消息、内存区、socket之类的交互。

时间: 2024-08-02 16:34:07

如何解决64位进程调用32位dll的相关文章

64位Win7安装+32位Oracle + PL/SQL 解决方法

  软件景象:64位win7.32位Oracle 10g. PL/SQL 9.0.4.1644   媒介:以前开辟用的都是32位体系,忽然换到64位上,安装景象真的有点麻烦了,尤其对于PL/SQL只支撑32位等.看了很多的材料,但一些题目并不克不及直接解决.花了一天时候终于安装成功了,下文将安装过程中碰到的题目记录下,以便作为今后的参照,也对大师解决类似题目有效.   情景:安装完win7后,新建了一个用户,但在安装完Oracle后,点击Net Configuration Assistant,,

二进制-java中的64位数据和32位数据的区别

问题描述 java中的64位数据和32位数据的区别 之前在看数据之间的相互比较的时候,遇到这样一个问题 "数值间的相等比较,本质是比较他们二进制存储是否相等.例如:0.3f==0.3返回的是false(32位的2进制的0.3表示和64位的0.3表示是不同的):但是0.5f==0.5返回的是true(因为32位和64位的二进制表示是相同的)" 那么我怎么知道要比较的这两个数在32位和64位中是否相等呢,有什么办法吗> 本人初学java,还望给各位多多指点 解决方案 32位和64位下

如何在64系统上监视32位模式下ASP.NET程序的性能

如何在64系统上监视32位模式下ASP.NET程序的性能?为何64位系统上的性能计数器会监视不了IIS32位模式下ASP.NET的性能呢? 发生此问题是因为 64 位版本的 Corperfmonext.dll 文件只能枚举 64 位进程. 此外, 32 - 位版本的 Corperfmonext.dll 文件只能枚举 32 位进程. 要在 64 位计算机上查看托管 32 位程序, 请依次单击 开始 . 运行 , 输入%SystemRoot%SysWOW64perfmon.exe然后单击 确定 .即

vs2012-windows 64位系统自带的notepad,其窗体句柄应该是64位的还是32位的?

问题描述 windows 64位系统自带的notepad,其窗体句柄应该是64位的还是32位的? 大家好,我在64位系统上,用vs2012的spy++(64位)查看系统自带的notepad的窗体句柄.本来以为会看到64位的句柄.但是实际上是32位的.另外,里面看到的所有窗体的句柄都是32位的.想问下为什么? 解决方案 还是32位的.即便是x64程序,仍然使用win32 api.windows考虑了向前兼容性和32bit/64bit程序混合运行的情况,所以绝大部分x64下的api接口没有变化. 解

谁有64位系统运行32位天正建筑2013补丁

问题描述 谁有64位系统运行32位天正建筑2013补丁 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 解决方案六: 解决方案七:http://download.csdn.net/detail/zhl0123321/6557089这里有,但是很恶心,要注册,还有赚积分.

怎样打开64位 Ubuntu 的32位支持功能?

怎样打开64位 Ubuntu 的32位支持功能? 现在有一个让你可以在64位系统中使用32位软件的方法,就在你读了这篇文章然后照着做了之后就可以了.如果你有一个13.10或更高版本的Ubuntu/Debian,你需要安装一个叫做 ia32-libs 的基础包.现在,这个包已经被废弃了,所以你必须手工安装. 大多数使用基于 Ubuntu/Debian 的发行版的人都更倾向于选择64位的系统,对吧?这是因为64位的系统能够充分发挥你的硬件的全部性能, 它使你能够在更紧张的内存资源下使用更复杂的软件,

怎样打开64位 Ubuntu 的32位支持功能

大多数使用基于 Ubuntu/Debian 的发行版的人都更倾向于选择64位的系统,对吧?这是因为64位的系统能够充分发挥你的硬件的全部性能, 它使你能够在更紧张的内存资源下使用更复杂的软件,而且是真的快速使用,不必每次做一件小事都要等上许久.现在,32位仅有一个优点,那就是没有太多兼容性上的问题.每次JAVA更新都很让人很困惑,因为大多数用户都不能获得需要的库文件.在过去,很多别的软件和驱动也没有64位版. 因此,如果现在你有一个64位架构的系统,而且你可以使用之前的支持:包括驱动.64位版本

oracle11g-64位win7cpu安装32位的oracle,出现OUI-10038错误

问题描述 64位win7cpu安装32位的oracle,出现OUI-10038错误 问题如下: 解决方案 mv /etc/oraInst.loc /etc/oraInst.loc.bak 删除或者改名之后,安装oracle就不会还是选择之前的内容了 然后再用oracle用户执行./runI....就行了 解决方案二: 也有可能是你的oracle版本有问题 win7建议你安装oracle11g以上版本,安装oracle10g以下版本时有问题 解决方案三: 请使用管理员权限运行安装程序

在Windows Server 2008 X64中通过.NET程序调用32位com组件

在开发短信接口时,需要调用一个com组件,在本机测试成功.可是部署到Windows Server 2008 X64的服务器上却出现下面的错误: Retrieving the COM class factory for component with CLSID {79AD7B73-C515-40B4-8B02-CB0F5FA5A1A} failed due to the following error: 80070005 部署时,直接在命令行中通过regsvr32注册com组件. 被这个问题折腾了