程序运行时出现地址错误,请大家帮忙分析原因.

qi7 2005-07-16 04:44:43
出错的行在system单元的LoadResString函数中;

function LoadResString(ResStringRec: PResStringRec): string;
var
Buffer: array [0..1023] of char;
begin
if ResStringRec = nil then Exit;
if ResStringRec.Identifier < 64*1024 then
SetString(Result, Buffer, // error line
LoadString(FindResourceHInstance(ResStringRec.Module^),
ResStringRec.Identifier, Buffer, SizeOf(Buffer)))
else
Result := PChar(ResStringRec.Identifier);
end;

请问是什么原因出现这种错误?
...全文
312 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qi7 2006-05-17
  • 打赏
  • 举报
回复
谢谢大家.
换了台机器就没事, 不过没找到原因;
结贴.
Teng_s2000 2005-07-22
  • 打赏
  • 举报
回复
哈,重装delphi吧!
xixuemao 2005-07-22
  • 打赏
  • 举报
回复
function LoadResString(ResStringRec: PResStringRec): string;
var
Handle: TResourceHandle;
Tab: ^ResStringTable;
ResMod: HMODULE;
begin
if ResStringRec = nil then Exit;
ResMod := FindResourceHInstance(ResStringRec^.Module^);
Handle := FindResource(ResMod,
PChar(ResStringRec^.Identifier div ResStringTableLen),
PChar(6)); // RT_STRING
Tab := Pointer(LoadResource(ResMod, Handle));
if Tab = nil then
Result := ''
else
begin
Result := PWideChar(PChar(Tab) + Tab[ResStringRec^.Identifier mod ResStringTableLen]);
end;
end;

这个不就是系统定义的吗?你按照这个写不行了
qi7 2005-07-20
  • 打赏
  • 举报
回复
我需要帮助!!!
qi7 2005-07-19
  • 打赏
  • 举报
回复
在下愚钝,大侠能否说明白点?
我现在想找到调用来源.
xiaoyaozgc 2005-07-18
  • 打赏
  • 举报
回复
qi7 2005-07-18
  • 打赏
  • 举报
回复
一般会在哪调用这个函数???
GoldShield 2005-07-18
  • 打赏
  • 举报
回复
The Win32 program loader sets up the first 64k of process address space
with no read or write access, to help detect use of invalid pointers
(whose integer value is 0..64k)
qi7 2005-07-18
  • 打赏
  • 举报
回复
在什么情况下会用到LoadResString函数,我的程序中没有调用,怎么判断调用来源
darkliu 2005-07-16
  • 打赏
  • 举报
回复
一般是调用了已经被释放的对象。检查一下
lovend 2005-07-16
  • 打赏
  • 举报
回复
错误提示是什么啊。帮你顶

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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