使用我们的MFC应用程序,正常的干净退出调用CWinApp :: ExitInstance(),然后调用CWinApp :: ~CWinApp。但是如果调用exit(1),则仅触发CWinApp :: ~CWinApp,跳过ExitInstance。我知道exit(1)不应该与MFC一起使用,但是我们有一个遗留应用程序在100个地方使用它,我担心用PostMessage替换它或者完全不同的东西。
这里最好的解决方案是什么?
答案 0 :(得分:2)
这取决于您在ExitInstance
中所做的工作。你必须确保你理解它正在做什么,以及改变上下文将如何影响它。
有了这个警告,最明显的方法是将您在ExitInstance
中所做的工作转移到单独的程序MyExitInstance
。从MyExitInstance
致电ExitInstance
。将对exit
的调用替换为调用MyExitInstance
的过程,然后调用exit
。
请注意,我在此假设只有ExitInstance
中您自己的代码才重要,而不是框架可能为您做的任何事情。