Im пытается отправить массив DWORDs по именованному каналу, но Im застревает, пытаясь выяснить, как отправить один DWORD. Это то, что я получил до сих пор:Отправить DWORD через named pipe
// Create a pipe to send data
HANDLE pipe = CreateNamedPipe(
L"\\\\.\\pipe\\my_pipe",
PIPE_ACCESS_OUTBOUND,
PIPE_TYPE_BYTE,
1,
0,
0,
0,
NULL
);
/* Waiting for the other side to connect and some error handling cut out */
//Here I try to send the DWORD
DWORD msg = 0xDEADBEEF;
DWORD numBytesWritten = 0;
result = WriteFile(
pipe,
(LPCVOID)msg,
sizeof(msg),
&numBytesWritten,
NULL
);
Но WriteFile(...)
вызов не выполняется и возвращает false
.
Приемный конец:
/* CreateFile(...) */
DWORD msg[128];
DWORD numBytesRead = 0;
BOOL result = ReadFile(
pipe,
msg,
127 * sizeof(DWORD),
&numBytesRead,
NULL
);
Am Я терпеть неудачу или я возглавляя правильное направление?
Плюс один для msg = 0xDEADBEEF, заставлял меня хихикать и голодать. :) Кроме того, я узнал кое-что после быстрого google: http://en.wikipedia.org/wiki/Hexspeak – jbowman