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.

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;
	}
Je passe un buffer buffread pour la lecture pour ne pas mettre NULL et 0.

quelqu'un a une idée??

Robux