Bonjour,
Concernant la fonction CallNamedPipe, il est dit quelle est équivalent à CreateFile en mode GENERICREAD | GENERICWRITE, donc je comprend qu'on peut soit faire un ecriture une lecture ou les deux.
Peut - on utiliser CallNamedPipe seulement pour appeler une instance d'un tube de message et seulement écrire?
http://msdn.microsoft.com/en-us/libr...44(VS.85).aspx
Avec le code ci dessous j'ai une erreur 5 : Access is denied.
Je passe un buffer buffread pour la lecture pour ne pas mettre NULL et 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void DispatcherRoot::sendData(const std::string& aRootName, const std::string& aData,void* aPlatformData) { CString lPipeName("\\\\.\\pipe\\"); lPipeName += aRootName.c_str(); char str[BUFSIZE]; memcpy(str,aData.c_str(),BUFSIZE); DWORD lbitread; char* buffread[BUFSIZE]; bool lCall = CallNamedPipe( lPipeName, (void*)str, BUFSIZE, buffread, BUFSIZE, &lbitread, NMPWAIT_USE_DEFAULT_WAIT); if(!lCall ) { LCTrace("Call Named Pipe failed, last error : %d",GetLastError()); return; }
quelqu'un a une idée??
Robux
Partager