簡體   English   中英

Integer()類型轉換在Delphi 64位上不起作用

[英]Integer() type cast doesn't work on Delphi 64-bit

我有以下代碼:

inc(integer(DestPixel), DestDelta); //DestPixel: PColorRGB; DestDelta: integer;

這在32位平台上運行良好。 如果我在編譯器中將平台更改為64位,則編譯器會發出以下錯誤:

E2064左側無法分配

問題似乎是在integer()類型轉換中。 我該如何解決這個問題?

在64位平台上, DestPixel為8字節寬, Integer為4字節,因此類型轉換無效。 您可以通過使用NativeInt來解決此問題。

inc(NativeInt(DestPixel), DestDelta);

NativeInt類型與指針的大小相同,因此根據輸出目標在4字節和8字節寬之間浮動。

話雖如此,我個人會對PByte類型轉換,因為它更准確地描述了您正在執行的操作。

inc(PByte(DestPixel), DestDelta);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM