[英]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.