当前位置:  开发笔记 > 编程语言 > 正文

64位内存分配

如何解决《64位内存分配》经验,为你挑选了3个好方法。

我被要求用C++创建一个Delphi兼容的dll来进行简单的64位内存管理.

背景是Delphi中的系统需要分配大量内存,这些内存在32位可寻址空间之外.Delphi开发人员向我解释说,他无法使用他可用的Delphi命令分配内存.他说他可以保存64位地址,所以他只想调用我提供的函数来分配内存并向他返回64位指针.然后是另一个功能,以便以后释放内存.

现在,我只有VS 2008供我使用,所以首先我甚至不确定我是否可以创建一个Delphi兼容的dll.

任何Delphi专家都会帮助我.也许有一种方法可以实现他所需要的而无需重新发明轮子.其他开发人员必须在Delphi之前遇到过这个问题.

所有评论赞赏.



1> Lars Truijen..:

只有64位进程可以处理64位内存.64位进程只能加载64位dll,32位进程只能加载32位dll.Delphi的编译器只能生成32位二进制文​​件.

所以32位Delphi exe无法加载你的64位c ++ dll.它可以加载一个32位的c ++ dll,但那个dll将无法处理64位的内存空间.你有点坚持这个解决方案.

Delphi可以使用正确的编译器选项和Windows开关来解决3GB的内存问题.如果使用物理地址扩展,则32位进程可以访问更多内存.然后,它需要通过使用Address Windowing Extensions将存储器页面交换进出32位存储器.



2> Roddy..:

Delphi指针是32位的.期.您的Delphi开发人员可能能够"存储"您想要返回给他的64位值,但他无法访问他们指向的内存,因此这非常徒劳.

以前,我写过: -

64位版本的Delphi位于 Codegear/Embarcadero的 "2009年中期" 路线图中.产品质量似乎(最后!)优先于完全击中船舶日期,所以不要屏住呼吸......

但是,2010年8月,Embarcadero 在这里发布了一个新的路线图.这没有给出具体的日期,但提到了一个64位的编译器预览版,其中包括2011年上半年的预计可用性.



3> Jim McKeeth..:

您可以看看Free Pascal,因为它包含64位版本,并且主要是Delphi兼容语法.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有