使用64位DLL与32 Borland C ++ Builder

时间:2011-12-10 13:43:29

标签: c++ dll 64-bit c++builder

我需要制作一个超过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代码是什么样的?

非常感谢任何输入,因为这是一个节目制作者。

2 个答案:

答案 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.