2009-06-29 13 views
27

J'essaie d'écrire une application de console Delphi qui crée un TStream pour son entrée standard et un autre TStream pour sa sortie standard.Ouverture d'un TStream sur stdin/stdout dans une application de console Delphi

(Il sera lancé par une application hôte avec ses entrées et ses sorties redirigées vers les canaux, et transmettra des données binaires de/vers cette application hôte, ainsi TStream sera beaucoup mieux adapté à la tâche que ReadLn/WriteLn Comment faire pour ouvrir un TStream sur une entrée standard ou une sortie standard?

Répondre

36

Du haut de ma tête:

InputStream := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE)); 
    OutputStream := THandleStream.Create(GetStdHandle(STD_OUTPUT_HANDLE)); 

Donnez qu'un aller ..

+4

Et nous dire si cela fonctionne s'il vous plaît! –

+4

En effet, très bien. Merci! –

+1

Notez que vous aurez besoin de l'unité Windows dans votre clause uses pour la fonction GetStdHandle. – Drarok