Ich habe eine Anwendung, die C # für Frontend und C ++ DLL für den Logikteil verwendet. Ich möchte Fehlermeldungen auf dem Konsolenbildschirm von meiner C ++ - DLL aus drucken, selbst wenn die C # -GUI vorhanden ist. Bitte lassen Sie mich wissen, wie das geht.
Danke, Rakesh.
Sie können AllocConsole () verwenden, um ein Konsolenfenster zu erstellen und schreibe dann auf die Standardausgabe.
Wenn Sie C- oder C ++ - Standard-E / A-Funktionen verwenden (im Gegensatz zu direkten Win32-Aufrufen), müssen Sie einige zusätzliche Schritte ausführen, um die neue Konsole mit der Standardausgabe der C / C ++ - Standardbibliothek zu verknüpfen. Ссылка erklärt, was Sie tun müssen und warum, mit komplettem Code.
Wenn die Anwendung nicht von einer Konsole aus gestartet wird, sind stdin, stdout und stderr nicht vorhanden und jeder Versuch, z. printf()
wird fehlschlagen. Öffnen Sie entweder Ihre eigene Konsole oder verwenden Sie einen Debugging-Mechanismus, wie z. B. OutputDebugString()
, der früher vorgeschlagen wurde.
Wenn Sie mit DLLs und Service-EXEs wie COM / DCOM oder einem anderen ATL-Projekt arbeiten, können Sie diese Codezeile auch verwenden, um Diagnosemeldungen in Form von MessageBox
windows als Alternative zum Drucken von Nachrichten auf der Konsole auszugeben :
MessageBox(NULL, L"Com Object Function Called", L"COMServer", MB_OK | MB_SETFOREGROUND);
Beispiele für Fälle, in denen ich diese Funktion verwendet habe, sind die Funktion _tWinmain
sowie Konstruktoren und Destruktoren, um Instanzen zu verfolgen.
Tags und Links c++