2016-01-25 32 views
0

我有我的wxWidgets客戶端/服務器應用程序,並面臨wxWidgets網絡內部的一個複雜的錯誤。這是一個很長的故事,讓我們在這裏跳過。C++壓制調試版本中的斷言

wxWidgets代碼使用斷言,所以我不能捕捉它,就像它是一個異常。

我可以在調試模式下編譯時抑制斷言嗎?

每次斷言發生時,都會出現wxWidget的斷言信息窗口,所以用戶需要按「繼續」或「中止」按鈕。如果我無法捕捉它(斷言不是例外),我想要壓制它。

+0

這是錯誤的,關閉這個問題,因爲wxWidgets的斷言('wxASSERT()','wxCHECK()',...)與標準'斷言完全不同的()'宏,即使他們都受'NDEBUG'影響。 –

回答

1

如果您在談論標準assert macro,您可以通過定義宏NDEBUG來關閉它。

如果NDEBUG是在被包括<cassert>源代碼 在點定義爲宏名稱,然後assert什麼也不做。

+0

謝謝,這工作,但不幸的是沒有解決我的問題與wxWidgets;在壓制斷言之後,GUI停下來重新繪製它應該如何,並且一旦它甚至取消了openbox。我會嘗試找到另一個網絡庫。 – user3558897