小编Pet*_*tra的帖子

我应该如何为最终的64位编译器准备我的32位Delphi程序?

可能重复:
迁移到Delphi 2010和Unicode时如何准备64位

由于我相信64位 Delphi编译器很快就会出现,我很好奇是否有人知道现在32位的程序将在使用64位编译器时编译和工作而不做任何更改.

如果有一般规则,我们应该在旧程序中系统地进行哪些更改以编译为64位

64位编译器突然出现时,做好准备是很好的 ...

任何建议将不胜感激.

delphi unicode 32bit-64bit delphi-2010

59
推荐指数
5
解决办法
9809
查看次数

Windows 7下的"打开保存"对话框问题

我正在使用Delphi 2010.我必须设置UseLatestCommonDialogs为False并另外将ofOldStyleDialogOpen和Save对话框的属性设置为true,如果我希望Open 7和Save Dialogs在Windows 7中工作(否则它们根本不打开).我也为堆栈预留了相当多的空间:

{$M 16384, 60048576}
Run Code Online (Sandbox Code Playgroud)

因为我在大型数据集上使用递归算法.现在我想知道问题是什么:

  1. 新的对话框似乎非常耗费空间,有时它们在开始时工作,在一组打开和保存对话框执行之后它不再打开对话框(也许对话框在执行后不释放内存?)

  2. Windows 7中是否有错误?

还有其他人遇到过类似的问题吗?

使用古老的对话框在Windows 7上工作看起来有点奇怪(它们甚至比XP风格更老,我认为它们看起来像在Windows NT中).

任何建议将非常感谢.

提前致谢.

delphi windows-7 delphi-2010

4
推荐指数
1
解决办法
2566
查看次数

在64位系统上有不到8字节的指针是否有价值?

我们知道在64位计算机中,指针将是8字节,这将使我们能够处理大量内存.但另一方面,普通人现在可用的存储器高达16G,这意味着目前我们不需要8个字节用于寻址,而是5个或最多6个字节.

我是Delphi用户.

问题(可能是64位编译器的开发人员)是:

是否可以在某处声明您希望用于指针的字节数,这对整个应用程序都有效.如果您有数百万个指针的应用程序,并且您将能够声明指针只有5个字节,那么将占用的内存量将会低得多.我可以想象这可能很难实现,但无论如何我对它很好奇.

提前致谢.

delphi 64-bit pointers

2
推荐指数
2
解决办法
434
查看次数

DelphXE:GlobalMemoryStatus 与 GlobalMemoryStatusex

我使用的是DelphiIXE。

我了解到 GlobalMemoryStatus 在 64 台 RAM 超过 4G 的计算机上可能会返回错误结果,因此应该使用 GlobalMemoryStatusex。

但是,另一方面,如果我在 32 位计算机上使用 GlobalMemoryStatusex,结果也会错误(返回的数字为 0 或巨大)。

当然我可以准备两个程序:一个用于64位计算机,一个用于32位计算机,并使用正确的内存状态,但是有没有办法使用相同的调用或识别计算机是64位的?并做类似的事情:

if comp64 then  begin
   GlobalMemoryStatusex 
   ....
end
else begin
   GlobalMemoryStatus 
   ....
end;
Run Code Online (Sandbox Code Playgroud)

这是我现在使用的代码:

var 
  MS1: TMemoryStatusex;
begin
  GlobalMemoryStatusex(MS1);
  showmessage('KiloBytes of physical memory: '+FormatFloat('#,###" KB"', MS1.ullTotalPhys / 1024)+chr(10)+
              'Percent of memory in use: '+Format('%d%%', [MS1.dwMemoryLoad])+chr(10)+
              'KiloBytes of free physical memory: '+FormatFloat('#,###" KB"', MS1.ullAvailPhys /1024)+chr(10)+chr(10)+
              'KiloBytes of paging file space: '+FormatFloat('#,###" KB"', MS1.ullTotalPageFile / 1024)+chr(10)+
              'KiloBytes of free paging file space: '+FormatFloat('#,###" KB"', MS1.ullAvailPageFile …
Run Code Online (Sandbox Code Playgroud)

delphi

1
推荐指数
1
解决办法
5091
查看次数