IsBadReadPtr 函数测试

wlj351 2015-12-18 06:37:45
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')
但现在有个奇怪的问题,我拿到另一台电脑上去运行,会崩溃,有大神能指点下吗
...全文
1056 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathletboy 2015-12-19
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/zh-cn/visualc/aa366713%28v=vs.85%29 该函数已经废弃,不该再使用,具体原因自己看remarks吧。
doloopcn 2015-12-19
  • 打赏
  • 举报
回复
在你的电脑上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');

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧