Wie schreibt man in die "normale" Konsole und nicht in eine Zweit-Konsole?
-
Hallo,
ich möchte gerne, dass, wenn man über die Eingabeaufforderung eingibt "meinprogramm.exe ?", in der Eingabeaufforderung ein kleiner Infotext mit allen möglichen Parametern erscheint.
Die Implementation von
DWORD dwWrite; WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "Hello world", 1, &dwWrite, 0);
hat jedoch zur Folge, dass der Text in eine zweite, sich öffnende Konsole geschrieben wird, und nicht in die "Standardkonsole", von der aus das Programm aufgerufen wurde (cmd.exe unter Windows XP).
Wie kann ich dies erreichen?
Danke!
stem
-
versuchs doch mal mit std::cout oder _tprintf()
-
Beides funktioniert nicht (keinerlei Anzeige).
stem
-
poste mal etwas code. und was meinst du mit keine ausgabe? versuch einfach mal sowas:
#include <iostream> #include <cstring> int main(int argc, char* argv[]) { for(size_t i=0; i<argc; ++i) if(strcmp(argv[i], "?")==0) std::cout<<"bla bla bla"<<std::endl; system("pause"); }
dazu braucht man auch die WinAPI nicht.
-
Äh, ich hätte vielleicht betonen sollen, dass ich eine Win32-GUI-Anwendung habe (geschrieben mit Borland C++ Builder), also keine Konsolenanwendung.
Vermutlich lasse ich den Infotext aber doch in einer Windows-MessageBox anzeigen.
Aber interessieren würde es mich schon, ob es eine Lösung für mein ursprüngliches Problem gibt ...
"Keine Ausgabe" bedeutet:
D:\verzeichnis>MeinProgramm.exe D:\verzeichnis>
Also eine leere Zeile und keine Ausgabe.
stem
-
Du musst deinen Prozess vor der ersten Ausgabe an die Konsole attachen. Dann funktionierts auch mit den i/o streams...
-
kenner_der_dummköpfe schrieb:
Du musst deinen Prozess vor der ersten Ausgabe an die Konsole attachen. Dann funktionierts auch mit den i/o streams...
geht nicht
-