Drucken von Nachrichten aus der C ++ - DLL zur Konsole

8

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.

    
Rakesh K 01.03.2010, 06:02
quelle

4 Antworten

8

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.

    
Greg Najda 01.03.2010, 06:20
quelle
13

Sie können OutputDebugString in C ++ DLL verwenden und dann DebugView ausführen, um die Nachrichten zu erhalten

    
Francis 01.03.2010 06:08
quelle
4

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.

    
Ignacio Vazquez-Abrams 01.03.2010 06:12
quelle
0

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.

    
matrixanomaly 01.07.2015 19:24
quelle

Tags und Links