【发布时间】:2010-11-19 13:25:45
【问题描述】:
我的 Win32 控制台应用程序使用第三方库。退出 WinMain 后,全局对象开始销毁,并且 AV 发生在内部深处。我真的很想写
TerminateProcess( GetCurrentProcess(), 0 );
在 WinMain 结束附近的某个地方。如果我这样做,应用程序就会优雅地结束。
但MSDN says 这样做会损害由动态链接库 (DLL) 维护的全局数据的状态,这一点尚不清楚。我知道,如果我有一些全局对象,它的析构函数不会运行,我可能不会完成数据库连接或类似的事情。我的程序中没有类似的东西。
使用 TerminateProcess 的风险究竟是什么?我如何确定是否可以将其用于我的目的?
【问题讨论】:
-
AV = 访问冲突,由于内存访问错误而崩溃
-
该第三方库的性质是什么?
-
该库进行光学字符识别。我猜它除了内存不会修改任何东西,但当然不能确定。
标签: windows winapi visual-c++ process