我使用32位第三方库有32位应用程序。现在我必须将我的应用程序设置为64位,以便它可以利用64位地址空间(大内存)。 由于我无法将32位库加载到64位应用程序进程中,我正在考虑在第三方库上创建32位可执行包装,并使用IPC(命名管道/套接字)从我的64位应用程序进行通信。 所以我的问题是这样做会有什么问题吗? 此外,如果我必须在64位系统上安装我的应用程序,所有与我的应用程序相关的文件将被复制到“c:\ Program Files”目录。现在我可以将我的32位第三方exe包装器保存在相同的“c:\ Program Files”中,还是需要复制到“c:\ Program Files(x86)”目录?
答案 0 :(得分:3)
这正是Microsoft推荐的此类问题的方式。如果您正在使用COM,则可以创建COM exe服务器。对于.NET使用WCF。在您的情况下 - 本机C ++,没有COM - 内存映射文件或管道是一个不错的选择。
关于安装目标文件夹 - 您需要使用用于构建安装包的工具对此进行测试。如果整个安装目标是64位,并且单个可执行文件是32位 - 该工具可能会显示有关此文件的警告。执行文件时,无论是在Program Files还是Program Files(x86)中,还是在任何其他目录中都无关紧要。