我有我的wxWidgets客戶端/服務器應用程序,並面臨wxWidgets網絡內部的一個複雜的錯誤。這是一個很長的故事,讓我們在這裏跳過。C++壓制調試版本中的斷言
wxWidgets代碼使用斷言,所以我不能捕捉它,就像它是一個異常。
我可以在調試模式下編譯時抑制斷言嗎?
每次斷言發生時,都會出現wxWidget的斷言信息窗口,所以用戶需要按「繼續」或「中止」按鈕。如果我無法捕捉它(斷言不是例外),我想要壓制它。
我有我的wxWidgets客戶端/服務器應用程序,並面臨wxWidgets網絡內部的一個複雜的錯誤。這是一個很長的故事,讓我們在這裏跳過。C++壓制調試版本中的斷言
wxWidgets代碼使用斷言,所以我不能捕捉它,就像它是一個異常。
我可以在調試模式下編譯時抑制斷言嗎?
每次斷言發生時,都會出現wxWidget的斷言信息窗口,所以用戶需要按「繼續」或「中止」按鈕。如果我無法捕捉它(斷言不是例外),我想要壓制它。
如果您在談論標準assert
macro,您可以通過定義宏NDEBUG
來關閉它。
如果NDEBUG是在被包括
<cassert>
源代碼 在點定義爲宏名稱,然後assert
什麼也不做。
謝謝,這工作,但不幸的是沒有解決我的問題與wxWidgets;在壓制斷言之後,GUI停下來重新繪製它應該如何,並且一旦它甚至取消了openbox。我會嘗試找到另一個網絡庫。 – user3558897
這是錯誤的,關閉這個問題,因爲wxWidgets的斷言('wxASSERT()','wxCHECK()',...)與標準'斷言完全不同的()'宏,即使他們都受'NDEBUG'影響。 –