JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

VS C++6: Konsolenausgaben anzeigen?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MichaelB
Mini JLI'ler



Anmeldedatum: 09.07.2005
Beiträge: 27

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 13:01    Titel: VS C++6: Konsolenausgaben anzeigen? Antworten mit Zitat

Hallo,

kurze Frage: Ich möchte in der MS VS C++6 Autorenversion die Möglichkeit haben, beim Ausführen einer Win32-Anwendung alle printf() Konsolenausgaben zu sehen, die das Programm so macht. Mir fehlt aber unten in der Statusleiste der Karteireiter "Konsole" (wie es ihn z.B. bei Eclipse gibt).

Selbst wenn ich die .exe in einem DOS-Fenster ausführe, werden keine printf() Ausgaben angezeigt. Gibt's da was zu beachten?

Danke im vorab!

Gruß,
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 13:03    Titel: Antworten mit Zitat

Keine Printf ausgaben werden angezeigt? Shocked Hmn zeig mal Code, das will ich sehen Shocked
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MichaelB
Mini JLI'ler



Anmeldedatum: 09.07.2005
Beiträge: 27

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 13:25    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
Keine Printf ausgaben werden angezeigt? Shocked Hmn zeig mal Code, das will ich sehen Shocked


Um ein ellenlanges Listing zu ersparen: Es ist die "HelloWindows.cpp" aus Kapitel 12, wobei ich als erste Zeile der WinMain-Funktion einfach ein printf("Hello"); eingefügt habe:

Code:
...

int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    printf("Hello!)";

// Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

...


Dieses Hello kommt nirgendwo an, in der MS VC6 Autorenversion gibt's ja beim Ausführen einer Win32 Anwendung noch nicht einmal ein Konsolenfenster (oder muß man das erst irgendwo aktivieren?).

Auch in der DOS-Box kommt beim Ausführen der .exe keine Ausgabe der printf Funktion. Kompiliert wird alles fehlerfrei.

Als Java Programmierer bin ich's gewohnt, mir vom Programm Statusrückmeldungen auf die Konsole ausgeben zu lassen, einfach um zu wissen, ob etwas geklappt hat oder nicht. Wie handhabt Ihr das?

Gruß,
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 13:42    Titel: Antworten mit Zitat

Dass, was Eclipse dort macht, ist eine Konsole in der IDE anzuzeigen.
In dieser Konsole könntest du auch andere Befehle verwenden (z.B. ls oder cd). Unter Windows gibt es diese Möglichkeit so nicht direkt. Aber du hast das Fenster "Ausgabe", in dem du per Programmcode mittels OutputDebugString("...") reinschreiben kannst. eventuell hilft dir das ja.
Nur formatieren müsstest du den Code vorher (z.B. durch sprintf)
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MichaelB
Mini JLI'ler



Anmeldedatum: 09.07.2005
Beiträge: 27

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 14:00    Titel: Antworten mit Zitat

AFE-GmdG hat Folgendes geschrieben:
Aber du hast das Fenster "Ausgabe", in dem du per Programmcode mittels OutputDebugString("...") reinschreiben kannst.


Ah, jetzt wird mir einiges klar! Very Happy

MS VC6 unterscheidet auch noch zwischen "Ausführen (F5)" und "Programm ausführen (Ctrl+F5)". Nur ersteres öffnet überhaupt das Ausgabefenster für den Debugger.

Danke!

Gruß,
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 14:36    Titel: Antworten mit Zitat

Wenn du "Programm ausführen" nutzt, wird das Pogramm ohne Debugger gestartet - weshalb dieser keine Ausgaben an die IDE senden kann.
Bei "Ausführen" wird der Debugger gestartet, welcher das Programm ab der ersten Codezeile kontrolliert ausführt. - Entsprechende Ausgaben kann der Debugger nun an die IDE weiterleiten.
Eventuell kann man durch umbiegen des Standard-Out-Filepointers auch mit printf zum Ziel kommen - das habe ich aber noch nie getestet...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 17:09    Titel: Antworten mit Zitat

MichaelB hat Folgendes geschrieben:

Code:
...

int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    printf("Hello!)";

// Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

...




hmm, wenn du den Code so reingeschrieben hast, ists klar, dass das net ausgeführt wird. Ich glaube aber eher, dass das ein kleiner Tippferhler war, weil der Compiler da eigentlich auf einen Error gest0ßen wäre. Tipp: Guck dir mal den printf()-Aaufruf an.

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 17:59    Titel: Antworten mit Zitat

DirectXer
Ich sehe nichts was der Compiler als Fehler anerkennen würde? Shocked
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
philipp_boeing
JLI'ler


Alter: 35
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:05    Titel: Antworten mit Zitat

Code:
printf("Hello!)";


ähem, da sind die anführungsstriche aber eine stelle zu weit...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:07    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
DirectXer
Ich sehe nichts was der Compiler als Fehler anerkennen würde? Shocked

Augen auf Wink
Wie war das: Du siehst den Wald vor lauter Bäumen net mehr Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MichaelB
Mini JLI'ler



Anmeldedatum: 09.07.2005
Beiträge: 27

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:34    Titel: Antworten mit Zitat

philipp_boeing hat Folgendes geschrieben:
ähem, da sind die anführungsstriche aber eine stelle zu weit...


Yup, hast Recht, aber nur hier im Forum - nicht im eigentlichen Programmtext Wink

AFE-GmdG hatte schon Recht: Win32 Applikationen geben printf() Kommandos nicht auf die Kommandozeile (jedenfalls nicht unter MS VC6 Autor).

Seit ich mit OutputDebugString() arbeite, ist alles kein Problem mehr.


Zuletzt bearbeitet von MichaelB am 11.07.2005, 18:36, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:35    Titel: Antworten mit Zitat

MichaelB hat Folgendes geschrieben:
philipp_boeing hat Folgendes geschrieben:
ähem, da sind die anführungsstriche aber eine stelle zu weit...


Yup, aber nur hier im Forum - nicht im eigentlichen Programmtext :wink:


sag ich doch ;)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MichaelB
Mini JLI'ler



Anmeldedatum: 09.07.2005
Beiträge: 27

Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:38    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
Wie war das: Du siehst den Wald vor lauter Bäumen net mehr Smile


Ich will meine Eclipse IDE zurück praying

Der korrigiert Syntaxfehler schon während des Tippens...

(Jaja, ich weiß, mit CDT gibt's Eclipse auch für C/C++, aber mit wesentlich weniger Komfort)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 11.07.2005, 18:43    Titel: Antworten mit Zitat

MichaelB hat Folgendes geschrieben:
DirectXer hat Folgendes geschrieben:
Wie war das: Du siehst den Wald vor lauter Bäumen net mehr Smile


Ich will meine Eclipse IDE zurück praying

Der korrigiert Syntaxfehler schon während des Tippens...

(Jaja, ich weiß, mit CDT gibt's Eclipse auch für C/C++, aber mit wesentlich weniger Komfort)

Das war auf Patrick bezogen, schön dass du dich angesprochen fühlst Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum