为什么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,可以保证被断言的代码出错就中止。
[解决办法]