我需要制作一个超过4GB数据的“数据池”,组织为二维数据阵列:
我在32位CodeGear 2009 C ++ Builder中使用许多第三方VCL组件制作了50个表单应用程序 - 因此现在不能真正选择迁移到Visual Studio 2010(目前)。
这个想法是使用包含数据数组的64位DLL(用Visual Studio 2010?或Delphi EX2?制作) - 想法是用数组中数据位置的x,y参数调用64位DLL,以及DLL返回数组中的值。
以前有人这样做过吗?是否可以从C ++ Builder调用64Bit DLL,如何在运行时动态加载DLL的init代码是什么样的?
非常感谢任何输入,因为这是一个节目制作者。
答案 0 :(得分:3)
根据您列出的限制,您最好的选择是使用进程外COM服务器。您的32位C ++ Builder应用程序无法加载64位模块。这是一个无法绕过的硬限制。这使您可以进行某种形式的进程间通信,而进程外COM将是最容易编码的。
答案 1 :(得分:2)
32位程序无法加载64位DLL。 DLL被加载到正在运行的进程中,整个进程是32位或64位。您最多可以创建一个单独的64位应用程序,并从32位应用程序启动它;然后你就可以用你想要的任何方式进行沟通。 This is how IIS is able to let 64-bit Windows serve web applications using 32-bit DLLS.