delphi访问冲突
问候 以下代码给出了一个错误:delphi访问冲突,delphi,access-violation,Delphi,Access Violation,问候 以下代码给出了一个错误: "Project prKlanten.exe reaised exception class EAccessviolation with message 'acces violation at address 004d7767 in module 'prKlanten.exe'. Read of address 0000005C." procedure TfmOrder.FormCreate(Sender: TObject); begin dm.atD
"Project prKlanten.exe reaised exception class EAccessviolation with message 'acces violation at address 004d7767 in module 'prKlanten.exe'.
Read of address 0000005C."
procedure TfmOrder.FormCreate(Sender: TObject);
begin
dm.atDier.Open;
while not dm.atDier.eof do
begin
cbKeuze.Items.Add(dm.atDier['Diernaam']);
dm.atDier.Next
end;
dm.atDier.Close;
end;
有人知道为什么吗?如果您需要更多信息,请随时询问
[编辑]
有关更多信息,请参阅jasper的帖子当您访问非您的内存时,会导致访问冲突,例如:
- 使用零指针
- 缓冲区溢出
- 访问未初始化的指针/对象
- 访问已释放的指针/对象
- dm未设置
- 未设置dm.atDier
- cbKeuze未设置
- dm.atDier['diernam']失败
dm
尚未创建
我打赌cbKeuse.Items
尚未创建
我打赌,dm
尚未创建
更改此位并再次运行:
[snip]
begin
Assert(dm<>nil);
Assert(dm.atDier<>nil);
dm.atDier.Open;
while not dm.atDier.eof do
[snip]
[snip]
开始
断言(dmnil);
断言(dm.atDiernil);
dm.atDier.Open;
而不是dm.atDier.eof do
[剪报]
断言通过了吗?如果在调试器下运行,它将在错误更新我的答案所在的行中断。嫌疑犯是OnCreate中的呼叫。请Jasper停止添加不是问题答案的答案。如果要提供更多详细信息,请编辑问题。如果您无法编辑问题,因为它不是您的问题,请提出您自己的问题!如果这不是整理,我将被迫投票关闭太本地化。