2 Stimmen

Kontinuierliches Lesen/Schreiben von Daten mit Pipes Win32

Ich versuche, ein GUI-Programm für ein Befehlszeilenprogramm in Win32 mit WinAPI zu schreiben (also bitte keine MFC). In meinem derzeitigen Versuch erstelle ich eine Eingabe- und eine Ausgabe-Pipe zum Lesen/Schreiben von Daten. Mein Problem tritt jedoch auf, wenn ich versuche, kontinuierlich aus einem Programm zu lesen oder einfach nach einem einzelnen Lesevorgang zu schreiben, da ich "CloseHandle();" verwenden muss. Kann jemand eine gute Lösung für dieses Problem empfehlen? Ich muss den Unterprozess während der gesamten Zeit, in der ich von ihm lese oder in ihn schreibe, offen halten. Gibt es vielleicht einen besseren Weg als CreatePipe(); und CreateProcess();, um dies zu tun?

Herzliche Grüße,
Dennis M.

2voto

Billy ONeal Punkte 100691

Sie müssen Folgendes verwenden Asynchrone E/A .

1voto

Len Holgate Punkte 20590

Ich bin mir nicht sicher, ob ich Ihr Problem ganz verstehe.

Ich gehe davon aus, dass Sie diesen MSDN-Artikel gelesen haben ( http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx ) und haben einen ähnlichen Code?

Ich fand es einfacher, überlappende E/A- und E/A-Abschlussports zu verwenden, um die Pipes zu handhaben, also habe ich einen Wrapper geschrieben, um die Pipes korrekt zu erstellen ( http://www.lenholgate.com/blog/2008/02/process-management-using-jobs-on-Windows.html ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X