![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mazik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.10.2007 Репутация: нет Всего: нет |
Есть такой участок кода:
На функцию WriteFile компилятор не ругается , но при выполнении возвращаемое значение - 0 и GetLastError возвращает ошибку (87) The parameter is incorrect. ERROR_INVALID_PARAMETER Где и что не так? ![]() |
|||
|
||||
eyeofhell |
|
|||
Адепт ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 16.10.2008 Где: Россия, Москва Репутация: 1 Всего: 1 |
Строка 5: CreateFile() вызываете, а результат не сохраняете. В результате все функции вызываются с hFile равным INVALID_HANDLE_VALUE, о чем и сообщает GetLastError() |
|||
|
||||
mazik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.10.2007 Репутация: нет Всего: нет |
вообще-то GetLastError() сообщает ERROR_INVALID_PARAMETER а не INVALID_HANDLE_VALUE но предложенное попробовал- результат тот же
|
|||
|
||||
eyeofhell |
|
||||||
Адепт ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 16.10.2008 Где: Россия, Москва Репутация: 1 Всего: 1 |
Все правильно:
Утром телепатия плохо работает :(. Если нужна консультация - надобно код показать или подождать пока я проснусь / более могучие телепаты захотят помочь ![]() |
||||||
|
|||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
вместо таких сложных схем с многократным вызовом CreteFile, проще его вызвать один раз, с параметром OPEN_ALLWAYS, вместо CREATE_NEW и OPEN_EXISTING
![]() |
|||
|
||||
mazik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.10.2007 Репутация: нет Всего: нет |
Полный код:
|
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
||||
|
||||
mazik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.10.2007 Репутация: нет Всего: нет |
2 Lazin:
сорри если повторяюсь, но здесь код с учетом замечания, сказанного тобой
и все равно не работает |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
у тебя между созданием файла и записью в него столько всего происходит, может дело в ф-ии SetFilePointer? попробуй вызвать ее так:
SetFilePointer(hFile, 0, 0, FILE_END); если конечно я тебя правильно понял плюс ты не проверяешь что возвращают функции WriteFile, SetFilePointer и CreateFile |
|||
|
||||
mazik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.10.2007 Репутация: нет Всего: нет |
2 Lazin:
Спасибо за наводку в сторону SetFilePointer. Проблема решена. Дело было в использовании флага FILE_FLAG_OVERLAPPED при открытии файла. Как написано в описании к ф-ции SetFilePointer: "The file pointer that is identified by the value of the hFile parameter is not used for overlapped read and write operations. " |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |