乐
乐乐0898
Unregistered / Unconfirmed
GUEST, unregistred user!
我的问题是delphi中as,is关键字是如何工作的?特别是as,它可以把一个类转换成另一个类我从delphi中的system.pas中截取as关键字代码请求给与讲解,再次感谢!!
我的E-Mail地址 yueyue0898@sina.com
procedure _AsClass
asm
{_> EAX left operand(class)
{ EDX VMT of right operand
{<_ EAX if left is derived from right ,else runtime
error }
TEST EAX,EAX
JE @@exit
MOV ECX,EAX
@@loop
MOV ECX,[ECX]
CMP ECX,EDX
JE @@exit
MOV ECX,[ECX].vmtParent
TEST ECX,ECX
JNE @@loop
{ do runtime error}
MOV AL,reInvalidCast
JMP error
@@exit:
end;