ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
873493 Топик полностью
IBAH (25.09.2018 15:04, просмотров: 134) ответил Ксения на Напишите так:
Это, извините, костыль. Начинаю понимать, что чтобы правильно записать, надо правильно открыть порт http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_writefile.htm
lpOverlapped [in] Указатель на структуру OVERLAPPED. Эта структура требуется тогда, если параметр hFile создавался с флажком FILE_FLAG_OVERLAPPED. Если hFile был открыт с флажком FILE_FLAG_OVERLAPPED, у параметра lpOverlapped не должно быть значения ПУСТО (NULL). Он должен указывать на правильную структуру OVERLAPPED. Если hFile был открыт с флажком FILE_FLAG_OVERLAPPED, а lpOverlapped имеет значение ПУСТО (NULL), функция может неправильно сообщить о завершении операции записи. Если hFile был открыт с флажком FILE_FLAG_OVERLAPPED, а lpOverlapped имеет значение не ПУСТО (NULL), операция записи начинается при смещении, заданном в структуре OVERLAPPED, а WriteFile может возвратить значение прежде, чем операция записи будет закончена. В этом случае, WriteFile возвращает значение ЛОЖЬ (FALSE), а функция GetLastError возвращает значение ERROR_IO_PENDING. Это дает возможность вызывающему процессу продолжать работу до тех пор, пока операция записи не закончится. После завершения операции записи, событие, определяемое в структуре OVERLAPPED устанавливается в сигнальное состояние. Вызывающая программа должна корректировать позицию указателя позиции в файле после завершения операции. Если hFile не открывался с флажком FILE_FLAG_OVERLAPPED, а lpOverlapped - значение ПУСТО (NULL), операция записи начинается с текущей позиции в файле и WriteFile не возвращает значения до тех пор, пока операция не будет закончена. Система после завершения операции модернизирует указатель позиции в файле. Функция WriteFile сбрасывает событие, заданное членом hEvent структуры OVERLAPPED в несигнальное состояние, когда она начинает операцию ввода-вывода (I/O). Поэтому, нет какой-либо необходимости вызывающей программе проделывать эту процедуру. Windows NT/2000/XP: Если hFile не был открыт с флажком FILE_FLAG_OVERLAPPED и lpOverlapped - не ПУСТО (NULL), то операция записи начнется со смещения, заданного в структуре OVERLAPPED, а WriteFile не возвращает значение до тех пор, пока операция записи не завершится. Windows 95/98/Me: Для операций с файлами, дисками, каналами или почтовыми ящиками в ядре Windows, этим параметром должно быть значение ПУСТО (NULL); указатель на структуру OVERLAPPED порождает вызов, который завершиться ошибкой. Тем не менее, Windows 95/98/Me поддерживает асинхронные операции на последовательных и параллельном портах.