程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi的類型轉換(2)

Delphi的類型轉換(2)

編輯:Delphi

二、數的“分開”與“合成”

取32位longint型數的高16位數為

hiWord(longint-var)

低16位數為

loWord(longint-var)

取16位數的 高8位數

hibyte(integer_var)

低8位數為

lobyte(integer_var)

取32位地址的段選擇符和偏移量 段選擇符(高16位地址)為

selectorof(p)

偏移量(低16位地址)為

offsetof(p)

段選擇符和偏移量合成為指針

Ptr(SEG, OFS: Word)相當於C語言的宏MK-FP(SEG,OFS)

例如在Windows中,Task DataBase結構0FAh偏移處包含'TD'標識,我們可以容易地編寫如下代碼觀察到這個位於Windows內部的未公開的秘密:

{函數ptr(seg,ofs)的用法,相當於C語言的MK-FP(seg,ofs)}
   var p:pbyte;ch:char;
   p:=ptr(getcurrentTask,$FA);
   ch:=char(p^); {結果為ch='T'}
   p:=ptr(getcurrentTask,$FA+1);
   ch:=char(p^);   {結果為ch='D'}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved