退出主要功能以外的程序

时间:2014-07-17 04:35:54

标签: c++ allegro

当我在游戏中点击x按钮时,我正在使用allegro游戏库制作项目 一个函数将被调用,然后我可以执行std :: exit(0)或者allegro的内置退出函数" allegro_exit()"但我的程序不会退出,它仍然会打开,但没有响应,因为我没有从主函数返回。

我唯一的机会是在主函数中执行while循环,当x按钮没有被点击时执行填充,循环完成后我通常可以从main函数返回,

但是,我不认为while循环是好主意,它不适合我的程序。

是否有机会以另一种方式这样做?

1 个答案:

答案 0 :(得分:1)

std::exit()函数执行所有必要的清理并以正常方式终止程序。如果您的程序冻结并且没有响应,那么请考虑仔细查看负责资源释放的代码(析构函数等)。有些库可以以某种奇怪的方式对退出函数做出反应,因此请考虑这种情况。您可以详细了解std::exit() here

请勿使用std::abort()进行正常的程序终止,因为它并非旨在用于此目的,并且在您的应用程序之后它不会被清除。

无论如何,我建议您检查项目的体系结构,并在所有清理后返回主函数。 while循环是可以的,因为它必须存在于等待用户输入的某个地方。