LongPtr

Dim Value As LongPtr

LongPtr 被引入 VBA 以支援 64 位平臺。在 32 位系統上,它被視為 Long ,在 64 位系統上,它被視為 LongLong

它的主要用途是提供一種在兩種體系結構上儲存和傳遞指標的可移植方式(請參閱在編譯時更改程式碼行為) 。

雖然在 API 呼叫中使用作業系統將其視為記憶體地址,但應注意 VBA 將其視為有符號型別(因此受無符號簽名溢位)。因此,使用 LongPtrs 執行的任何指標算術都不應使用 >< 比較。這個怪癖也使得在記憶體中新增指向有效地址的簡單偏移量可能會導致溢位錯誤,因此在使用 VBA 中的指標時應該小心。

轉換為 LongPtr 的轉換函式是 CLngPtr()。對於浮點型別的轉換,結果四捨五入到最接近的整數值,其中 .5 向上舍入(儘管它通常是一個記憶體地址,因此將其用作浮點計算的賦值目標最多是危險的)。