ShowMessage或者Messagebox弹出后出现access violation......

yang_jnu 2011-10-28 11:33:12
我是在FormCreate事件里面调用ShowMessage或者MessageBox的,但在弹出Message后,如果马上按确定,程序正常,但如果稍等两三秒后,就会出现:
Access violation at address XXXXXXX in module 'vcl50.bpl'. Read of address 00000047.
我在FormShow函数调用就没有这种情况,

目前遇到过几会了,我实在没有头绪是哪里出错,希望指点下,
此外,顺便问个其它问题:dll里面使用try...catch是不是不能捕获异常的,我想捕获个socket的端口异常,结果捕获不了,后面使用__try...__exception捕获到了,但还是想在此确认下dll里面使用try...catch是不是不能捕获某些异常的....
...全文
187 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang_jnu 2011-11-09
  • 打赏
  • 举报
回复
不好意思,来晚了,最后是直接把代码写在Onshow事件里的....感谢各位了,结帖
chinayu2007 2011-11-08
  • 打赏
  • 举报
回复
可以用"定时器"看看,在窗口启动的时候,启动"定时器",然后在"定时器"中做你要做的事.
zzbinfo 2011-10-31
  • 打赏
  • 举报
回复
就你这个情况来看,这个校验放到winmain里面更合适
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
//校验放到这个地方更合适
// if(不正确) return 0
//
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//----------------
yang_jnu 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzbinfo 的回复:]

对话框放到onshow事件里面,初始化资源放到create里面.
[/Quote]
程序的逻辑是:启动的时候读取配置文件,然后检查配置文件是否正确,不正确就通过showmessage提示出错,并退出程序。
之前这段校验逻辑是放在主窗口的Formcreate事件里面,就会有Access violation情况出现,按照zzbinfo大大的意思,是不是指这段校验应放在onshow事件?
还有,您说的:ShowMessage这些对话框会阻塞主线程,不点确定时会出现Access violation,是不是意味着还有其它VCL线程在访问资源呢?
zzbinfo 2011-10-29
  • 打赏
  • 举报
回复
对话框放到onshow事件里面,初始化资源放到create里面.
yang_jnu 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzbinfo 的回复:]

我也遇到过你说的这种情况.ShowMessage这些对话框会阻塞主进程,直到你点击确定才会继续.如果你的代码里面用到有皮肤组件等容易造成其他线程访问了没有初始化的资源造成错误.
[/Quote]
通常需要怎么解决呢??
zzbinfo 2011-10-29
  • 打赏
  • 举报
回复
我也遇到过你说的这种情况.ShowMessage这些对话框会阻塞主进程,直到你点击确定才会继续.如果你的代码里面用到有皮肤组件等容易造成其他线程访问了没有初始化的资源造成错误.
缘中人 2011-10-29
  • 打赏
  • 举报
回复
总之这个create中showmessage不是个好注意
cgl_lgs 2011-10-29
  • 打赏
  • 举报
回复
__try{}__exception是针对C异常,try{}catch是针对C++异常。两者无法相提并论:)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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