Delphi访问冲突分配局部变量

前端之家收集整理的这篇文章主要介绍了Delphi访问冲突分配局部变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这似乎是世界上最简单的东西,我已经准备好把头发拉过来了.

我有一个看起来像这样的单位;

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

这是一个变量的简单分配,我不知道它为什么这样做.我已经尝试将该变量本地的变量声明到整个过程 – 无论我在哪里尝试这样做,我都不能在这个过程中向任何地方声明的整数赋值为0,而不会抛出访问权限违反.我完全难过了.

我从同一单元内的按钮OnClick处理程序中调用该过程,但无论我从哪里调用它都会引发异常.疯狂的是,我在整个程序中的十几个其他地方做同样的事情没有问题.为什么在这?我完全失去了.

解决方法

读取地址00000008意味着您正在读取一个与nil指针相差8个字节的变量.这根本不适合你在这里尝试做的事情,因为你正在写作,而不是阅读,而你正在编写一个常量,而不是从某个地方读取的变量.

你确定这是触发异常的实际行吗?你在这条线上放了一个断点吗?您是否尝试过将此行移至程序的顶部?

没有你真正的代码在我面前很难确定,但如果我不得不猜测,我会说这之前的行导致了异常,然后指令指针已经增加,所以Delphi突出显示下一行.

猜你在找的Delphi相关文章