读书人

为什么C++BUILDER在创建出窗口后就不挂

发布时间: 2012-02-04 15:43:08 作者: rapoo

为什么C++BUILDER在创建出窗口后就不挂了?? - C++ Builder / Windows SDK/API

C/C++ code
        Application->Initialize();        Application->MainFormOnTaskBar = true;        Application->CreateForm(__classid(TTestForm), &TestForm);        Application->Run();


以上语句跑完,窗口已被创建了。
创建了两个按钮,分别做一个除零错,和一个非法指针访问。
代码如下:
C/C++ code
//---------------------------------------void __fastcall TEPSForm::btnDivZeroClick(TObject *Sender){    int i=0;    int j=1;    j = j/i;}//---------------------------------------void __fastcall TEPSForm::btnNullPClick(TObject *Sender){    char* pData=NULL;    *pData = 1;}


很奇怪的是,点它们除了报错外,居然主程序不关??这和平时的理解完全不同,
在VC中都会使程序彻底退出,这是为什么?如何解决呢?

现在很希望在CBC中出现这种情况能将整个程序自动完全退出,而不是还可以对界面进行各种操作。
望大虾指教!

[解决办法]
加个ApplicationEvents1组件在他的OnException可以处理异常,当然也可以退出
C/C++ code
void __fastcall TForm1::ApplicationEvents1Exception(TObject *Sender, Exception *E){ Application->Terminate();}
[解决办法]
VCL中的异常处理机制比VC要好。

用断言:assert,可以保证被断言的代码出错就中止。
[解决办法]
探讨
WIN7下验证确实可以。。。在XP下再试试,如果可以这个方法更简单

读书人网 >C++ Builder

热点推荐