procedure TForm1.btn1Click(Sender: TObject);
var
addr:DWORD;
begin
addr:=2;
if (not IsBadReadPtr(Pointer(addr),4)) then ShowMessage('1')
else ShowMessage('0');
end;
正常運行,肯定是ShowMessage('0')
但現在有個奇怪的問題,我拿到另一臺電腦上去運行,會崩潰,有大神能指點下嗎
uj5u.com熱心網友回復:
在你的電腦上Pointer(addr)有定義,但在另一臺電腦上沒有對addr進行定義或鎖定了addr的資源,你一讀就產生Exception了,嚴重的情況也就是你的崩潰了。也許這樣試試:
var
Bad:Boolean;
addr:DWORD;
begin
addr:=2;
try
Bad:=IsBadReadPtr(Pointer(addr),4);
except
Bad:=False;
end;
if (not Bad ) then ShowMessage('1')
else ShowMessage('0');
uj5u.com熱心網友回復:
https://msdn.microsoft.com/zh-cn/visualc/aa366713%28v=vs.85%29該函式已經廢棄,不該再使用,具體原因自己看remarks吧。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74535.html
上一篇:怪異的文本!
