Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 25
1

CreateFile возвращает код ошибки=3 (ERROR_PATH_NOT_FOUND)

14.03.2016, 21:07. Показов 5412. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте,
Пытаюсь записать файл в windows API приложении.
функция CreateFile выглядит вот так:
C++
1
2
HANDLE Book;
Book = CreateFile((LPCWSTR)PBFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
где:
PBFileName= "C.lpb"
После вызова CreateFile и проверки с помощью
int xxx;
xxx = GetLastError();
получено:
xxx=3 то есть ERROR_PATH_NOT_FOUND
Почему? - кто знает?
Формально имя файла корректное. Файл должен создаться в текущей директории.
Что этому мешает и почему код ошибки = 3?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2016, 21:07
Ответы с готовыми решениями:

FindWindow не нашел окна, а ShellExecute возвращает ERROR_PATH_NOT_FOUND
Функция ShellExecute возвращает ERROR_PATH_NOT_FOUND(числовое значение - 2), хотя путь указан...

CreateFile возвращает ERROR_ALREADY_EXISTS
дело в том что я эту ф-цию вызываю вот-так: ...

CreateFile возвращает ERROR_NOT_ENOUGH_QUOTA
Вечер добрый! Нет ли идей, почему Createfile могла вернуть 1816 (ERROR_NOT_ENOUGH_QUOTA) ? Не...

Что возвращает API-функция CreateFile?
Здравствуйте! Суть вопроса в следующем: Открываю файл или физический диск с помощью функции...

3
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
15.03.2016, 12:38 2
1. Убери приведение PBFileName к LPCWSTR.
2. GetLastError следует звать ТОЛЬКО если функция вернула ошибку
(т.е. при INVALID_HANDLE_VALUE).
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 25
15.03.2016, 14:55  [ТС] 3
"1. Убери приведение PBFileName к LPCWSTR."
Убрал приведение. Не помогло. Как возвращало BOOK= 0xffffffff так и осталось.
"2. GetLastError следует звать ТОЛЬКО если функция вернула ошибку"
(т.е. при INVALID_HANDLE_VALUE)."
Естественно. Ведь CreateFile во всех случаях в моем приложении пока что возвращает 0xffffffff
(то есть -1) что является неправильным хендлером. Поэтому вызов GetLastError правомерен.
После введения рекомендуемых вами изменений - все равно xxx=3.
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
15.03.2016, 14:57 4
Ну раз с этим все окей, значит, проблема в файловом пути.
Точнее в том, что путь к файлу указан относительный и
система ищет его относительно текущей директории.
0
15.03.2016, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2016, 14:57
Помогаю со студенческими работами здесь

Как узнать код ошибки sendmail, и что он там возвращает?
Интернет-магазин, форма приёма заказов. Надо, чтобы одно письмо шло админстратору, второе - кленту....

Ошибки CreateFile
File=CreateFile(FileName, GENERIC_READ, NULL, NULL, OPEN_EXISTING, NULL, NULL); Что происходит,...

Запуск драйвера в win10 возвращает код ошибки 2 (не удается найти указанный файл)
Отмечу сразу, что меня пока не интересует правильность работы самого драйвера, я собирал решение в...

При установке любой программы CreateFile;сбой;код 5.Отказано в доступе."
Уважаемые пользователи,системные администраторы и другие,кто делает windows лучше;излагаю суть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru