Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

24.05.2008, 17:45

Eingabeaufforderung meldungen abfangen

Hi, ich versuche gerade, eine IDE für mehrere Programmiersprachen zu entwickeln. Bis jetzt kann man zwischen Java und C wählen (C++ leider noch nicht, weil mingw irgendeinen Fehler meldet, wenn man c++ header einbinden will, aber im ordner "C++" sind alle Dateien...). Man kann schon speichern, laden, kompilieren und ausführen. Ein Probleme habe ich aber noch, das ich leider nicht alleine lösen konnte: Wenn ein Fehler beim Compilieren auftritt, passiert nichts, da ich die system()-funktion zum starten des Compilers benutzt habe (ich wusste nicht wies sonst gehen soll xD). Natürlich blinkt das Konsolenfenster nur kurz auf, und wenn ein Fehler auftritt, kann man diesen leider nicht lesen. Gibt es eine Möglichkeit, bzw eine Funktion, mit der man den Nachrichtenverlauf oder die letzte Nachricht der Eingabeaufforderung speichern kann? Wenn das ginge wäre ich euch sehr dankbar, wenn ihr mir sagen könntet, wie man dies macht :)

2

24.05.2008, 17:50

nach der fehlermeldung einfach system("pause"); dranhängen?

3

24.05.2008, 18:19

keine schlechte Idee...

Aber Eigentlich will ich in einem Nachrichtenfenster unter dem Quellcode die Fehlermeldungen anzeigen

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

24.05.2008, 18:20

Nimm zum starten des Prozess lieber CreateProcess (http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx). Über die Struktur STARTUPINFO kannst du den Standard Output Handle für den Prozess festlegen. Das schöne daran: Du brauchst für die Ausgabe nicht die Konsole sondern kannst auch eine Textbox, oder Listbox (oder sonst etwas beliebiges) verwenden. Siehe auch: http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx
@D13_Dreinig

5

24.05.2008, 18:26

@ raXor: Funktioniert leider nicht... der beendet die Konsole in dem er den compiler gestartet hat und wartet danach in nem neuen CMD auf nen Tastndruck

6

24.05.2008, 18:28

Ich denke, du rufst den Compiler mit

Quellcode

1
system("[Pfad zum Compiler] -Parameter1 - Parameter2 ...

auf.
Häng an diese Zeile ein ">ausgabe.txt" an. Dann wird die komplette Ausgabe in die Datei ausgabe.txt umgeleitet. Diese kannst du dann einlesen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

24.05.2008, 18:29

Zitat von »"Steef"«

Ich denke, du rufst den Compiler mit

Quellcode

1
system("[Pfad zum Compiler] -Parameter1 - Parameter2 ...

auf.
Häng an diese Zeile ein ">ausgabe.txt" an. Dann wird die komplette Ausgabe in die Datei ausgabe.txt umgeleitet. Diese kannst du dann einlesen.


Man kann sich auch einen Bruch heben statt einen Kran zu verwenden!
@D13_Dreinig

9

24.05.2008, 21:02

kann mir jemand die erstemn beiden Parameter von CreateProcess() (LPCWSTR lpszImageName und LPCWSTR lpszCmdLine) erklären? ich hab nur die englische msdn und werde aus der erklärung nicht so ganz schlau

10

24.05.2008, 21:44

ööööhm ok die beschreibung von msdn is kacke :) die hab ich wohl jetz kapiert aber jetzt noch die entscheidende frage: wie übergibt man ne textbox alsziel der nachrichten?

Werbeanzeige