Ich schreibe eine plattformübergreifende gemeinsame Bibliothek ( .so
unter Linux und .dll
in Windows) unter Verwendung von C. Wenn ein Fehler auftritt, geben die Bibliotheksfunktionen den entsprechenden Fehlercode zurück und schreiben die Fehlerinformationen in die stderr
. Die Bibliotheksfunktionen geben auch einige Informationen und Debug-Meldungen an stdout
. Dies funktioniert gut für konsolenbasierte Clients.
Diese Bibliothek wird nun Client-Programme haben, die eine mit C++ und wxWidgets programmierte GUI verwenden. Ich frage mich, was die besten Praktiken bei der Behandlung von Fehlern und deren Benachrichtigung sind? Kann eine UI-Anwendung auf Daten zugreifen, die an stdout
y stderr
auf allen Plattformen?
Eine alternative Möglichkeit, die ich dachte, ist die Bibliothek Initialisierungsfunktion initialisiert eine Struktur, die Funktion Zeiger haben wird. Alle Funktionen der Bibliothek werden eine Instanz dieser Struktur nehmen und die Funktionszeiger aufrufen. Auf diese Weise kann der Kunde wählen, wo die Nachrichten gedruckt werden sollen.
Ich frage mich, was die naheliegendste Lösung für dieses Problem wäre? Jede Hilfe wäre großartig.