首页 > 解决方案 > 你如何检查你在 Delphi Android 10.3.3 上运行的是 64 位还是 32 位?

问题描述

是否有任何有关 Delphi Firemonkey Android 10.3.3 的文档来检查您是否在 Android 设备上运行 32 位或 64 位?

Dalija Prasnikar 的回答似乎效果最好:

var p: pointer;
begin
  if SizeOf(p) = 4 then
    showmessage('32 bit')
  else if SizeOf(p) = 8 then
    showmessage('64 bit');

我似乎无法让其他答案正常工作。

标签: androiddelphibit

解决方案


{$IFDEF CPU32BITS }
  // 32-bit
{$ELSE }
  // 64-bit
{$ENDIF }

除非您的意思是 Andoid 操作系统是 32 位还是 64 位(您可以在 64 位 Android 上运行 32 位程序)。

在这种情况下

(假设你已经知道你在 Android 上运行)

USES System.SysUtils;

.
.
.

{$IFDEF CPU32BITS }
  IF TOSVersion.Architecture=TOSVersion.TArchitecture.arARM64 THEN
    // 64-bit
  ELSE
    // 32-bit
{$ELSE }
  // 64-bit
{$ENDIF }

推荐阅读