【发布时间】:2026-02-19 19:45:01
【问题描述】:
Form1 连接到数据库并将连接保持在已发布的属性 Form1->DBSession 中。
在项目源代码中,我想确保此会话已关闭,即使程序被中止并抛出异常(在库中)。
我的代码包含使用
的表单USEFORM("fForm1.cpp", Form1);
在 WinMain 中编写此代码时
try {
Application->Initialize();
Application->CreateForm( __classid(TForm1), &Form1 );
Application->Run();
}
__finally
{ Form1->DBSession->Close(); }
编译器不编译,因为它不知道 TForm1。我无法包含头文件,因为我需要使用 USEFORM 并得到一个重新声明错误,包括。
【问题讨论】:
-
如何调用 abort()?您能否选择不使用 abort 并使用 exit() 和 atexit 或 throw exit_exception(exit_code);反而?这个 SO 问题可能会有所帮助:*.com/questions/397075/…
-
我的问题是我必须在项目源中调用表单属性或表单方法。我无法控制退出 run 方法的代码,但我发现自己必须确保在大多数情况下调用 Form1->DBSession->close() 方法。
标签: c++builder