请教 pointer?(10)

J

jiangzs

Unregistered / Unconfirmed
GUEST, unregistred user!
function GetStrAllocSize(const S: string): Longint;var P: ^Longint; //longInt 指针变量begin P := Pointer(S); dec(P, 3); Result := P^ and not $80000000 shr 1; end;一个 func的功能,请大家 解析一下 begin end 之间语句的功能。有点看不懂。
 
猜测下.第一句话应该没有意义.会被编译器忽略.最后应该是返回字符串S的偏移地址为-12(十进制)处的LoingInt型的一半.连着函数的话,应该是RETN 即C3, 而C3的一半是61(16进制)也就是97.所以这个函数我感觉没有什么道理.如果是想取长度,直接Length(S)或者 PInteger(Integer(S) - 4)^看是不是用在Dll中
 
接受答案了.
 

Similar threads

S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
S
回复
0
查看
770
SUNSTONE的Delphi笔记
S
I
回复
0
查看
594
import
I
I
回复
0
查看
515
import
I
I
回复
0
查看
711
import
I
顶部