Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > создание pipe


Автор: snake12 24.5.2008, 15:33
Подскажите пожалуйста как создать pipe между моей программой и консольной уже запущенной программой.
У меня не получается и примера я не нашёл, только всместе с запуском дочернего процесса.
Помогите с подключением к выполняющейся программе так чтоб она принимала данные из моей.

Код

#include <windows.h> 
#include <tchar.h>
#include <stdio.h> 
#include "stdafx.h"
 
HANDLE pipRd, pipWr;

 
int _tmain(int argc, TCHAR *argv[]) 
{ 
 CreatePipe(&pipRd, &pipWr, NULL, 0);
 return 0; 
} 


вообщем я не совсем понимаю к чему именно таким образом мы проводим pipe
или мы его сейчас просто создаём а подключать будем позже?
А подключиьт как? Да и этот код ошибок навыдавал.


Код

(8) : error C2146: syntax error : missing ';' before identifier 'pipRd'
(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
(13) : error C3861: 'CreatePipe': identifier not found

Автор: NiJazz 25.5.2008, 23:52
http://msdn.microsoft.com/en-us/library/aa365780(VS.85).aspx

Автор: DigitSphinx 26.5.2008, 03:05
Компилятор считает все что перед #include "stdafx.h" это коммент.

А с пайпами просто работать, 
сначала 
Код

HANDLE hPipe = CreateNamedPipe(\\\\.\\pipe\\TransportPipe ………)

потом 
Код

ConnectNamedPipe(hPipe, NULL);

С другой стороны пайпа
Код

HANDLE hFile = CreateFile("\\\\(имя хоста)\\pipe\\ TransportPipe" …

Далее 
Код

WriteFile(hFile……
ReadFile(hFile……


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)