在线等待:Windows启动时弹出“Exception EStackOverflow in moudle ...”的错误提示而无法运行Delphi的程序,why?

zzyxb 2002-08-29 09:32:59
我将一个程序的启动信息添加到注册表以让它能在Windows启动时自动运行,但每次Windows启动时都弹出“Exception EStackOverflow in moudle ...”的错误提示而无法运行该程序,但Windows启动后运行该程序却一切正常,why?解决问题的立即送分!
...全文
96 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzyxb 2002-09-03
  • 打赏
  • 举报
回复
问题未解决,可能是系统故障,散分。
zzyxb 2002-09-03
  • 打赏
  • 举报
回复
问题仍未解决,可能是系统的问题,散分。
cmmi 2002-08-29
  • 打赏
  • 举报
回复
当然还要添加代码了,如下:

//只允许有一个实例运行
RvHandle:=FindWindow(PChar(APPNAME), nil);
if RvHandle>0 then Exit;
sleeepboy 2002-08-29
  • 打赏
  • 举报
回复
让程序只运行一个实例可以这么做吗?
cmmi 2002-08-29
  • 打赏
  • 举报
回复
APPNAME是一个常量,用于唯一标识本程序,以保证只有一个实例运行。
该程序只是一个简单的小应用程序,未调用任何外部资源,且在 CreateParams 后和 FormCreate 前出的问题。
sleeepboy 2002-08-29
  • 打赏
  • 举报
回复
你的APPNAME是什么东东
为什么要修改类名?
ddvboy 2002-08-29
  • 打赏
  • 举报
回复
写全呀
cmmi 2002-08-29
  • 打赏
  • 举报
回复
我的程序是我们的一个作业:“每日提醒”,代码如下:

procedure TfrmRemind.CreateParams(var Params: TCreateParams);
begin
//设置窗体的类名以保证只有一个实例运行
inherited CreateParams(Params);
Params.WinClassName := APPNAME;
end;

///////代码在这之间出错////////////////////////////

procedure TfrmRemind.FormCreate(Sender: TObject);
var
initDate: TDate;
begin
...
end;
nothingknown 2002-08-29
  • 打赏
  • 举报
回复
1 首先是程序没有逻辑问题;
2 确定是程序单独能运行,还是在delphi环境下运行,试者将程序放到一个
没有delphi的系统中,执行一下
如果没有问题,那就不是delphi的环境问题了,可能是系统问题;
如果有问题,那就可能是你的程序中调用了某些.dll或者其他的资源;
3 错误信息应该是说,堆栈溢出,Exception EStackOverflow in moudle
wxjh 2002-08-29
  • 打赏
  • 举报
回复
很明显是堆栈溢出错误!但是具体怎么样,我就不知道了
ddvboy 2002-08-29
  • 打赏
  • 举报
回复
你把原代码放上来看看!
cmmi 2002-08-29
  • 打赏
  • 举报
回复
试过了,放在WIN的启动里可以启动,但放到注册表里就不行了。
经调试,发现是在 Application.CreateForm(TfrmRemind, frmRemind); 后 FormCreate 前出的问题。
sleeepboy 2002-08-29
  • 打赏
  • 举报
回复
堆栈溢出
一般的程序添加到注册表启动项应该是没问题的
你的程序是什么功能?
ddvboy 2002-08-29
  • 打赏
  • 举报
回复
可以自启动!
你先试试把EXE文件放到WIN的启动里看看启动不启动!
zzyxb 2002-08-29
  • 打赏
  • 举报
回复
那应该怎样解决呢?是不是说用Delphi开发的程序就不能自动启动了,或首先必须启动DELPHI的启动环境?
ddvboy 2002-08-29
  • 打赏
  • 举报
回复
是因为DELPHI的启动环境还没启动!
cmmi 2002-08-29
  • 打赏
  • 举报
回复
不是的,我将 procedure TfrmRemind.CreateParams(var Params: TCreateParams); 的代码全部注释掉也一样。
sleeepboy 2002-08-29
  • 打赏
  • 举报
回复
不修改窗体的类名也可以实现阿
会不会是因为你修改了窗体的类名才出的问题?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧