gpt4 book ai didi

c - Windows : preventing assert() failures from opening the debug popup

转载 作者:行者123 更新时间:2023-12-03 01:56:53 27 4
gpt4 key购买 nike

当 Windows 计算机上断言失败时,如何防止出现调试弹出窗口?我正在编写的应用程序是基于控制台的,当它在测试模式下执行时,我使用assert()来测试某些东西。我正在使用 MinGW + GCC 4。

编辑:这是测试程序。

#include <stdlib.h>
#include <assert.h>

int main(void) {
_set_error_mode(_OUT_TO_STDERR);
assert(0 == 1);
return EXIT_SUCCESS;
}

标志:gcc -mwindows -pedantic -Wall -Wextra -c -g -Werror -MMD -MP -MF ...

也尝试过不使用-mwindows。无论如何,我仍然会收到调试弹出窗口。这是在 Vista x86 机器上。

最佳答案

有很多方法可以做到这一点。最简单的方法是重新定义 assert 宏(请参阅 mingw assert.h header )。您也可以调用(这是我的建议):

_set_error_mode (_OUT_TO_STDERR);

编辑:真的,它对我有用:

#include <stdlib.h>
#include <assert.h>

int main (void)
{
_set_error_mode (_OUT_TO_STDERR);
assert (0 == 1);
return 0;
}

使用gcc -mwindows编译,运行时不显示对话框。删除带有 _set_error_mode 的行,它会显示对话框。如果它不适合您,请给出一个完整的示例。

关于c - Windows : preventing assert() failures from opening the debug popup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com