【发布时间】:2012-01-19 08:16:15
【问题描述】:
我有使用 32 位第三方库的 32 位应用程序。现在我必须让我的应用程序 64 位,以便它可以利用 64 位地址空间(大内存)。 由于我无法将 32 位库加载到 64 位应用程序进程中,我正在考虑在第三方库上创建 32 位可执行包装器,并使用 IPC(命名为管道/套接字)从我的 64 位应用程序进行通信。 所以我的问题是他们这样做会有什么问题吗? 此外,如果我必须在 64 位系统上安装我的应用程序,与我的应用程序相关的所有文件都将复制到“c:\Program Files”目录。现在我可以将我的 32 位第三方 exe 包装器保存在同一个“c:\Program Files”中还是需要复制到“c:\Program Files(x86)”目录中?
【问题讨论】:
-
共享内存(通过内存映射文件)可能是最快的数据选择。
-
@AlexeyFrunze 32 位和 64 位之间的共享内存对我来说似乎很可疑:“使用共享内存时,请注意 32 位进程中的结构可能具有不同的大小和布局64 位进程中的相同结构。对于包含指针或句柄的结构尤其如此。 msdn.microsoft.com/en-us/library/windows/desktop/…
标签: windows 64-bit 32bit-64bit 32-bit x86-64