编译出错但不影响运行,不知错在那里(70分)

  • 主题发起人 主题发起人 xinjia
  • 开始时间 开始时间
X

xinjia

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据库管理程序开始运行时报错信息:
Project main.exe raised exception class EAccessViolation with
message'Acces violation at address 00446546 in module
'main.exe'.read of address ffffffff'
我按确定后,按F9可以继续运行,没有问题。如果是单步执行的话,发现
错误发生在建立主窗体时,请教大概是那里的原因。
 
>>read of address ffffffff
ffffffff就是Nil
可以肯定是有什么对象没创建就开始用了

比如:

var
cAkk:TSomethig;
begin
cAkk.SendMessage('起床啦~~~~');
end;
就会出错,因为cAkk还没创建呢,变量指向Nil



修改为:
var
cAkk:TSomethig;
begin
cAkk:=TSomeThing.Create;
cAkk.SendMessage('起床啦~~~~');
cAkk.Free;
end;
 
>>错误发生在建立主窗体时
检查一下主Form的OnCreate事件里的代码,嫌疑很大!
 
呵呵,
常见的问题,
一般是访问了还没创建的东西。
 
还有,调整一下创建Form的顺序。(概念同蚯蚓)
 
果然是主Form的oncreate里放了未创建的窗体
 
后退
顶部