Составители:
12
ных операций записи могут переполнить буфер канала, заблокировав тем са-
мым дальнейшие попытки записи.
После создания анонимного канала два процесса могут обмениваться
информацией посредством вызова функций WriteFile для записи информации
в канал и ReadFile для чтения. Ниже приведены фрагменты программ, осу-
ществляющих запись и чтение информации в/из канала.
// Запись
информации в анонимный канал. phWrite- дескриптор записи, полу-
// ченный при открытии канала
BOOL bTest; //флаг результата выполнения операции записи
DWORD dwWrite; //количество записанных в канал байт
MSG msg; //передаваемая информация
msg.message=WM_USER; msg.lParam=20; msg.wParam=30;//заполняем струк
//туру msg
bTest=WriteFile(phWrite, &msg, sizeof(msg), &dwWrite, NULL);
if (!bTest) //если произошла ошибка
MessageBox(hWnd, “Невозможно передать данные”,”Ошибка записи”,
MB_OK); // выводим окно с сообщением об ошибке. Код ошибки можно
//
проанализировать функцией GetLastError()
Тогда в другом процессе должен присутствовать следующий фрагмент:
// Чтение информации из анонимного канала. phRead- дескриптор чтения,
//полученный при открытии канала
BOOL bTest; //флаг результата выполнения операции чтения
DWORD dwRead; //количество считанных из канала байт
MSG msg;
bTest=ReadFile(phRead, &msg, sizeof(msg), &dwRead, NULL);
if (!bTest) //если произошла ошибка
ных операций записи могут переполнить буфер канала, заблокировав тем са- мым дальнейшие попытки записи. После создания анонимного канала два процесса могут обмениваться информацией посредством вызова функций WriteFile для записи информации в канал и ReadFile для чтения. Ниже приведены фрагменты программ, осу- ществляющих запись и чтение информации в/из канала. // Запись информации в анонимный канал. phWrite- дескриптор записи, полу- // ченный при открытии канала BOOL bTest; //флаг результата выполнения операции записи DWORD dwWrite; //количество записанных в канал байт MSG msg; //передаваемая информация msg.message=WM_USER; msg.lParam=20; msg.wParam=30;//заполняем струк //туру msg bTest=WriteFile(phWrite, &msg, sizeof(msg), &dwWrite, NULL); if (!bTest) //если произошла ошибка MessageBox(hWnd, “Невозможно передать данные”,”Ошибка записи”, MB_OK); // выводим окно с сообщением об ошибке. Код ошибки можно // проанализировать функцией GetLastError() Тогда в другом процессе должен присутствовать следующий фрагмент: // Чтение информации из анонимного канала. phRead- дескриптор чтения, //полученный при открытии канала BOOL bTest; //флаг результата выполнения операции чтения DWORD dwRead; //количество считанных из канала байт MSG msg; bTest=ReadFile(phRead, &msg, sizeof(msg), &dwRead, NULL); if (!bTest) //если произошла ошибка 12
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »