Kann mier jemand helfen dieses umzusetzen?
-
hallo alle zusammen, ich kämpfe mich jetzt seit Tagen durch die Suche, Posts und die FAQ, aber ich bekomme es nicht geregelt...
kann mir jemand helfen diesen Code umzusetzen????
[url] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp
[/url]
Ich will auf einen ButtonKlick eine Konsolenanwendung starten und Sie von meinem MFC Programm leiten und ausführen, dass das über Pipes usw geht, weiss ich nu mittlerweile, aber ich bekomme es nicht hin...mein keyevent heisst
void ParaDlg::OnPipeTest() { ... }
Aber wo bringe ich jetzt z.B. dieses unter
BOOL CreateChildProcess(VOID); VOID WriteToPipe(VOID); VOID ReadFromPipe(VOID); VOID ErrorExit(LPTSTR); VOID ErrMsg(LPTSTR, BOOL);
Wenn das schon einmal jemand gemacht hat, bitte helfen, stehe sowas von auf dem Schlauch...
danke
-
nur weil ich mich in der Überschrift verschrieben habe, muss man nicht gleich nicht mehr mit mir reden
-
Bei Codeproject gibt es 2-3 Tutorials dazu.
Ich glaube das war im Bereich Threads und Prozesse. Nennt sich Redirect Pipe.
Ist zwar nicht so einfach aber anhand der Tuts solltest man es schon schaffenKannst du auch mal einen Blick auf meinen Thread ein paar Postings zuvor werfen ?
Gruss
daSickboy
-
die CRedirect.cpp und .h hatte ich schon versucht, aber weder verstanden noch hatte etwas geklappt...
Deswegen hoffte ich auf Hilfe zur MSDN, hattest du die CRedirect zum Laufen gebracht???
-
da gibt es mehrere Beispiele.
Folgendes benutze ich erfolgreich:Redirector - to redirect the input / output of a console
//
// Developer: Jeff Lee
// Dec 10, 2001Eigentlich schwierig ist nur zu verstehen wie es funktioniert das eine quasi Dos-Pipe umgeleitet werden kann.
Wenn du das selbe Beispiel benutzt kann ich dir helfen
-
meintest du das:
[url]
http://www.codeproject.com/threads/redir.asp
[/url]???
-
ja genau
-
ja das war der richtige link, habe jetzt auch deine angaben gefunden, konnte aber nur *.cpp und *.h runterladen, das Demo project streikt
Aber ich nehme mal an, dass ich die Redirect.cpp und Redirect.h in mein Project mit einbinden muss. Und soweit bin ich schoneinmal
-
Oh probier nochmal das Projekt zu bekommen.
Musst dir von der Redir Klasse eine Klasse ableiten in der du einige Sachen überschreibst. Das ist im Projekt halt ganz anschaulich.Viel Erfolg
-
kann die einzelnen cpp´s und h´s öffnen, aber nich alles zusammen compilieren
-
Nicht ärgern
Wo liegt das Problem ?
-
er meckert rum, dass er VisualStudioSolution nicht kennt, VCPROJ Dateien kennt er auch nicht und kann somit das Programm nicht öffnen:(
Die Demoexe startet aber auch nicht, da fehlen ihm dll´s, die mfc71.dll wie es in der README-Datei steht habe ich beachtet und eingefügt...
-
Also bitte!
Jetzt jammern wir aber auf niedrigen Niveau.Mfc71.dll sowie Msvcr71.dll usw. sind halt VC++ 7.1 dlls.
Offensichtlich handelt es sich um ein Visual Studio 2003 Projekt.
Es sollte aber wohl keine Schwierigkeit sein die paar Quelltextdateien in ein 6.0 er Projekt zu importieren und eben nen MFC Fensterchen dafür zu basteln.Kopf hoch, weitermachen, der Weg ist das Ziel
-
klappt nix, weder das demo noch meine versuche, das demo auf meinen dialog umzuschreiben...
-
Demo Projektdatei von .net (.sln) umwandeln in Visual Studio 6.0 (.dsw)
und kompilieren, zack zack
-
hallo sickboy,
ich hätte vielleicht früher reinschauen sollen, jetzt habe ich es per Hand mir zusammen gestrickt, das Demo läuft, ich kann mit
Command: cmd das momentane Verzeichnis anzeigen lassen, und mit
Input: cd.. das Verzeichnis wechseln...jetzt raucht mir aber auch der kopf
Meine 2te Anwendung bekomme ich zwar nicht zum laufen als child, aber ich tüfftel noch bissi
-
mir zieht´s die Socken aus, dat geht
-
GEHT DOCH, GEHT DOCH !
Ok nun mal eine Frage an dich. Ich habe Probleme einen gespawnten Process vorzeitig zu beenden. Selbst TerminateProcess(handle) gibt mir als return code den Fehler 5 = AccessDenied. Bist schonmal die Standard-Wege zum Schliessen eines Threads durchgegangen und kannst mir sagen wie das auf das Beispiel angewendet funktioniert ?
-
habe gerade mal das Demo so umgeschrieben, dass meine Exe automatisch als Command gestartet wird...
Leider kann ich sie nicht beenden mit ESC, weil dann schliesst meine ganze Anwendung, aber das bastel ich schon um...Wenn ich ehrlich bin verstehe ich noch nichteinmal was du damit sagen willst
, aber um den child Process zu beenden, exit im Input eingeben...
das war es wohl nicht, oder
sry
-
hehe, ne das war es nicht ganz.
Wenn man ein Konsolenprogramm ausführt und es regulär durchläuft bekommt man eine Rückmeldung.
Stell dir nun folgendes vor: Du startest eine Anwendung über die Konsole und willst sie manuell beenden. Dazu musst du dem Programm eine Meldung schicken das es sich beenden soll.TerminateProcess(handle) ist da eigentlich die letzte Möglichkeit die man anwenden sollte um dieses Programm zu beenden. Man geht zuvor erst andere Möglichkeiten zum Beenden durch, zB. PostMessage(WM_QUIT,...).
Das Beenden der Dos-Umgebung in der das Programm läuft ist wie gesagt kein Problem.
Vielleicht wirst du ja noch das selbe Problem bekommen, dann tauschen wir uns nochmal in einen neuen Thread aus.
ps. Meld dich mal im Forum an