首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教几个类似的的API的区别还有用法

2013-01-04 
请问几个类似的的API的区别还有用法IsBadCodePtr IsBadHugeReadPtr IsBadHugeWritePtr IsBadReadPtr IsBad

请问几个类似的的API的区别还有用法
IsBadCodePtr 
IsBadHugeReadPtr 
IsBadHugeWritePtr 
IsBadReadPtr 
IsBadStringPtr 
IsBadWritePtr 
//下面的例子为什么测试错误?
procedure   TForm1.Button1Click(Sender:   TObject);    
var
    TB:   TForm;
begin
    TB   :=   TForm.Create(nil);
   // Form2.Show;
    TB.Free;
    if   not   IsBadCodePtr(TB)   and   (PPointer(TB)^   =   Pointer(TForm))   then
    begin
      //应该是内存不存在了啊,怎么还会执行到这里?
        TB.Free;
    end;
end;
谢谢各位大哥,希望能帮我下这几个API究竟是怎么样的,我要判断一个对象或者内存有没有创建请问怎么来判断呢?
[解决办法]
to kiboisme
  如果按楼主前面的做法,对象变量是在方法里声明,也就是局部变量。那么此方法是否还有效呢?这个地方值得怀疑。
[解决办法]
代码已经考虑了局部变量的情况,而且这是完整研究了System.pas以及GETMEM.INC给出的代码,只要不是刻意构造,该函数不会出问题.刻意构造地址,可能让函数判断出错.

热点排行