Problem avec CallNamedPipe
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:
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