Output in konsole fuer WIN32 Applications

  • Hi
    Ein lame problem. Ich schreibe eine WIN32 Aplikation und brauche manchmal mit printf einige sachen 'outputen'. Da aber mein projekt ein WIN32 projekt ist kann ich es nicht :(. Weis jemand wie man das einschalten kann? Vielleicht reicht eine kleine aenderung in Projekt Properties(VC++ 2003 .NET)

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • Muss es mit der Option "-subsystem:windows" gelinkt werden (ist es eine GUI-App). Wenn nicht kannst du mit "-subsystem:console" eine Console-App bauen.
    Wenn das nicht geht, kannst du einfach die Ausgabe deiner EXE in eine Datei umleiten:
    app.exe -parameter > stdout_result.txt
    -> schreib die Ausgaben von stdout in stdout_result.txt
    Um die Ausgabe von stderr abzufangen schreibst du sowas:
    app.exe -parameter 2> stderr_result.txt
    Wichtig: kein Leerzeichen zwischen "2>" !!
    Du kannst es auch kombinieren:
    app.exe -parameter > stdout_result.txt 2> stderr_result.txt

  • Vielein dank! Das mit umleiten in ein datei hat funktioniert. Obwohl ich finde es am bischen umstaendig. Besser were es mit eine konsole. Also mein Programm ist eine gui-app (hat /subsystem:windows) in optionen. Ich habe probiert noch /subsystem:console dazu zu schreiben aber ich habe bei linken fehler bekommen. Es muesste aber gehen, ich denke bei java geht sowas. Also wenn du noch ideen hast... ;]

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • Es gibt die Möglichkeit dynamisch eine Konsole zu öffnen, wie besipielsweise bei Mozilla (mozilla.exe -console).
    Wenn du sowas als Debugfenster brauchst, kann ich den Code mal suchen.

  • Also wenn du in den Projektoptionen->Linker->System auf console umstellt und dann die Prozedur WinMain() durch eine main() ersetzt sollte es gehen.

    Oder du machst dir ein neues Projekt:
    Datei->Neu->Projekt
    Visual C++ Projekte
    Win32 - Konsolenprojekt

    Es is eigentlich egal ob du hier Win32-Projekt oder Konoslenprojekt nimmst da du im naechest Dialog das immer noch aender kannst unter Anwendungseinstellungen.

    :thumb: Geschrieben nach der alten, neuen und zukünftigen Rechtschreibung! :thumb:

  • Zentor. Leider VS mach das nicht ;[, Eclypse(java) aber schon

    phax. Ich danke aber es ist nicht notwendig weil...

    Kongo. Deine methode hat funktioniert. statt int WINAPI WinMain(...) habe ich durch int main(...) ersetzt und in properties linker subsystem von subsystem:windows auf subsystem:console gewechselt.

    Ich danke euch allen, ich habe wieder was gelernt :]

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • Zitat von Zentor

    Ich glaub im VisualStudió sieht man ConsolMessages auch bei Win32 Programmen zur Laufzeit (ganz unten).

    Das geht aber nur mit OutputDebugString und nicht mit den printf etc. Sachen.
    Freut mich aber das es jetzt funzt.
    Dabei ist aber zu beachten, dass jetzt jedesmal eine Konsole aufgeht, auch wenn man das Programm aus dem Explorer startet.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!