powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / pipe readfile overlapped Параметр задан неверно при локальной переменной
4 сообщений из 4, страница 1 из 1
pipe readfile overlapped Параметр задан неверно при локальной переменной
    #38871994
cp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть pipe server:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
typedef struct 
{ 
   OVERLAPPED oOverlap; 
   HANDLE hPipeInst; 
   TCHAR chRequest[BUFSIZE]; 
   DWORD cbRead;
   TCHAR chReply[BUFSIZE];
   DWORD cbToWrite; 
   DWORD dwState; 
   BOOL fPendingIO; 
} PIPEINST, *LPPIPEINST; 

PIPEINST Pipe[INSTANCES];

int _tmain(VOID) 
{
fSuccess = ReadFile( 
               Pipe[i].hPipeInst, 
               Pipe[i].chRequest, 
               BUFSIZE*sizeof(TCHAR), 
               &Pipe[i].cbRead, 
               &Pipe[i].oOverlap); 
}


Всё работает нормально, т.е. процесс ждёт поступления данных успешно читает их и идёт дальше.
Я хочу массив Pipe[INSTANCES] объявить внутри блока _tmain.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
int _tmain(VOID) 
{
PIPEINST Pipe[INSTANCES];

fSuccess = ReadFile( 
               Pipe[i].hPipeInst, 
               Pipe[i].chRequest, 
               BUFSIZE*sizeof(TCHAR), 
               &Pipe[i].cbRead, 
               &Pipe[i].oOverlap); 

printf("%d \n",GetLastError());
}


Но функция возвращает ошибку 87 - "Параметр задан не верно". Не устраивает её почему-то именно последний параметр &Pipe[i].oOverlap. Если его задать NULL - то работает.

Почему нельзя массив Pipe объявить внутри блока main ? В чём разница для функции ReadFile ?
...
Рейтинг: 0 / 0
pipe readfile overlapped Параметр задан неверно при локальной переменной
    #38872011
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cp2015Почему нельзя массив Pipe объявить внутри блока main ? В чём разница для
функции ReadFile ?
Эта функция не любит работать с неинициализированными переменными. Почитай про отличия
глобальных переменных от локальных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pipe readfile overlapped Параметр задан неверно при локальной переменной
    #38872017
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cp2015,

Отличия в инициализации структуры OVERLAPPED

Заполни нулями и будет работать
...
Рейтинг: 0 / 0
pipe readfile overlapped Параметр задан неверно при локальной переменной
    #38872083
cp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, заработало.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / pipe readfile overlapped Параметр задан неверно при локальной переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]