2011-08-03 330 views
3

我有一個Visual C++程序,我只用於錄音,有時它完全沒有藍色的崩潰,並出現一個對話框,「Visual C++調試庫」「調試斷言失敗」「中止」,「重試」, 「忽視」。當「Debug Assertion Failed」出現時自動終止程序?

我根本沒有必要做重試或忽略,所以我只想中止自動運行。

我有一個運行檢測到節目結束,並重新啓動它的批處理/ bash的文件,但是當此對話框出現時,程序仍然運行和程序公正保持崩潰,直到我注意到它。

回答

1

運行時函數_set_error_mode()可以爲你安排。你只需要做到這一點:

_set_error_mode(_OUT_TO_STDERR); 

所有錯誤(包括那些由斷言failuees挑起)將打印他們的消息stderr,而不是一個交互式消息框。這意味着您的應用程序不會阻止等待輸入,並會立即終止本身。

+0

我有什麼做的是,因爲我的源代碼進不去,我只是做了一個循環的腳本文件,與任務列表和TASKKILL和一些Cygwin的工具,它看到標題爲「微軟的Visual C++調試庫」是一個窗口只是殺死這個過程。奇怪的方式來做到這一點,但它完全有效。 –

+0

@Adam你可以掛鉤進程並調用'_set_error_mode()'。只是現在提到你不能改變程序的代碼是有點不公平的。這完全改變了這個問題,並使這個答案看起來很愚蠢。 –

+0

我的歉意我認爲我說沒有訪問源代碼,但從來沒有意識到它後爲時已晚。 –

相關問題