【发布时间】:2012-08-19 01:26:45
【问题描述】:
我有函数(用 Delphi 7 32 位编写):
函数 GetVMTAddr(var C): Integer;
开始
结果:=整数(C);
尝试
PVmt(结果)^.SelfPtr := PVmt(C)^.SelfPtr;
除了
结果:= 0;
结尾;
结束;
返回 VMT 地址(我认为它是 VMT,我不确定)并检查参数是否为对象(try...except,这是恕我直言的糟糕解决方案)。
我有两个问题:
1) 这真的是 VMT 地址还是我错了?
2)有没有更好的方法来检查参数是否是一个对象?
【问题讨论】:
-
This question 可能会有所帮助。
-
@Ken White:谢谢,我找到了这个问题,但还有第二个问题,我找不到答案。
-
“不要在家尝试这个”类别中的有趣问题。