我正在用C編寫跨平臺共享庫(在linux中爲.so
,在windows中爲.dll
)。當前存在錯誤時,庫函數返回適當的錯誤代碼並寫入錯誤信息進入stderr
。庫函數還會向stdout
發送一些信息和調試消息。這適用於基於控制檯的客戶端。錯誤處理共享庫中的策略 - C
現在這個庫將有客戶端程序使用GUI編程使用C++ & wxWidgets。我想知道處理錯誤和通知它的最佳做法是什麼?在所有平臺上,UI應用程序能否訪問數據到stdout
和stderr
?
我在想的另一種方法是庫初始化函數初始化一個將有函數指針的結構。庫中的所有函數都將採用此結構的實例並調用函數指針。這樣客戶可以選擇在哪裏打印郵件。
我想知道什麼是明顯的方法來解決這個問題?任何幫助都會很棒。
還有一個問題。所以在OpenSSL中,內部錯誤隊列如何被清除? – 2010-11-18 04:23:57
@Appu:爲應用程序提供了一個請求「下一個錯誤」的功能。這將從內部隊列中刪除最早的錯誤,並將其返回給應用程序。 – caf 2010-11-18 05:02:26