【发布时间】:2010-04-27 17:03:01
【问题描述】:
这似乎是世界上最简单的事情,我已经准备好把头发拉出来了。
我有一个看起来像这样的单元;
Unit myUnit;
// ...
//normal declarations
//...
Public
//bunch of procedures including
Procedure myProcedure;
const
//bunch of constants
var
//bunch of vars including
myCounter:integer;
Implementation
Uses //(all my uses)
// All of my procedures including
Procedure myProcedure;
try
// load items from file to TListBox - this all works
except
on EReadError do begin
// handle exception
end;
end; //try
myCounter:=0; // <-- ACCESS VIOLATION HERE
while myCounter //...etc
这是一个简单的变量赋值,我不知道它为什么这样做。我已经尝试将变量声明为单元的本地变量、过程的全局变量——无论我在哪里尝试这样做,我都无法将零值赋给在此过程中任何地方声明的整数,而不会引发访问违反。我完全被难住了。
我从同一单元内的按钮 OnClick 处理程序内部调用该过程,但无论我从何处调用它都会引发异常。疯狂的是,我在整个程序的其他十几个地方做同样的事情,没有任何问题。为什么在这里?我完全不知所措。
【问题讨论】:
-
您能否提供访问冲突错误消息的确切文本,包括地址?这可能很重要。
-
---------------------------- 调试器异常通知 ------------ --------------- 项目 .exe 引发异常类 EAccessViolation,并带有消息“模块 '.exe 中地址 0043FDE8 的访问冲突” .读取地址 00000008'。 --------------------------------------- 中断继续帮助 -------------------- --------
标签: delphi variables access-violation