为什么会出现 “Stack overflow ” ?(5分)

  • 主题发起人 主题发起人 rebirth2003
  • 开始时间 开始时间
R

rebirth2003

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]我的程序在我原来的机器上运行,一切正常,但在目标机器上运行时出现以下出错信息: “ Exception EStackOverflow in module RAINPLOT.EXE at 00092E31.
Stack overflow ”
真不知如何是好 ?
请各位帮我?! 谢谢!
 
在 编译前,在菜单Project->option->linker
u将memory size的
Max stack size的数扩的够大,
r

 
不行哦!我把 Max stack size 的数扩大到原来的 10 倍,可还出现同样的出误信息 。
 
请大家帮忙呀!
 
你的程序写的有问题。
或者用了什么组件,而组件运行的环境不对
 
我的程序用的全部都是delphi自带的组件。因为是数据库程序,我在主窗体前加了一个启动窗体和需要密码验证的登陆窗体。我没有象一般的做启动窗体的那样,而是直接把启动窗体做为主窗体。在原来的机器上运行时一切正常。是不是和做的启动窗体有关 ?
 
splash屏是主窗体?
工程文件中怎么写的?
 
又改了,通常的那种,如下,还出错:(Form6是启动窗体,Form5是数据库密码验证窗体,form1是原来的主窗体。)
program RainPlot;
uses
Forms, SysUtils,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {AboutBox},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6};
{$R *.res}
var
time1 : TDateTime ;
begin
Form6 := TForm6.Create(Application);
Form6.Show;
Form6.Refresh;
time1:=now;
repeat
until time1+StrtoTime('00:00:3')<=now;
Application.Initialize;
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.

请继续指教哦!
 
repeat
until time1+StrtoTime('00:00:3')<=now;
这句话和错误没有关系,不过我还是建议改为sleep(3000);
 
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm1, Form1);

这样的话,岂不是form5变成主窗体了?
你是在form1 create 事件里 form5 showModal?
 
哈哈! 搞定!原来是ADO连接串的问题! 散分!
 
多人接受答案了。
 
后退
顶部