Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330
1

Ошибка в CreateFile.

07.03.2012, 03:10. Показов 1560. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу консоль.
Когда передаю файл в функцию CreateFile, получаю ошибку INVALID_HANDLE_VALUE.
C++
1
2
3
4
5
6
7
8
9
10
11
    char filename[80];
    printf("Введите файл базы данных: ");
    scanf("%s",&filename);
    HANDLE  myFile = CreateFile(
    (LPCWSTR) filename,
    GENERIC_READ,
    FILE_SHARE_READ, 
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL);
Если передаю статический адрес - всё Ок.
C++
1
2
3
4
5
6
7
8
9
10
11
    char filename[80];
    printf("Введите файл базы данных: ");
    scanf("%s",&filename);
    HANDLE  myFile = CreateFile(
    TEXT("C:\\..."),
    GENERIC_READ,
    FILE_SHARE_READ, 
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL);
Как побороть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2012, 03:10
Ответы с готовыми решениями:

CreateFile(): ошибка "5"
Помогите пожалуйста не могу понять почему отклоняет по правам пользователя ошибка 5 . #include...

CreateFile()
Всем добрый вечер. Проблема с директорией записи файла (пишет в директорию екзешника) эта проблема...

CreateFile()
Как передать указатель на имя файла в функцию CreateFile(). Имя в структуре struct struct1 {...

CreateFile
Опрашиваю все съёмные носители и далее использую функцию CreateFile вот таким образом invoke...

1
374 / 321 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
07.03.2012, 07:05 2
Цитата Сообщение от Aleator Посмотреть сообщение
Как побороть?
Разобраться с тем что есть char (ANSI символы), wchar_t (символы юникода), TCHAR (т.н. универсальные символы).
Перестать смешивать в одном приложении char, wchar_t, TCHAR.
Узнать как правильно выполнять преобразование char в wchar_t и наоборот.
Прочитать в MSDN описание параметров функции CreateFile.
И тогда будет вам счастье

А пока напишите так
C++
1
2
3
4
5
6
7
8
9
10
11
        TCHAR filename[80] = {0};
        printf("Введите файл базы данных: ");
        _tscanf(_T("%79s"), filename); // ОГРАНИЧИВАЕМ КОЛИЧЕСТВО СИМВОЛОВ, НАМ ЖЕ НЕ НУЖНО ПЕРЕПОЛНЕНИЕ БУФЕРА
        HANDLE  myFile = CreateFile(
        filename,                  // "C:\\..." - что это вы пытались открыть такое?
        GENERIC_READ,
        FILE_SHARE_READ, 
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
Естественно, вы должны ввести корректное имя существующего файла (возможно с указанием пути к нему).
1
07.03.2012, 07:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2012, 07:05
Помогаю со студенческими работами здесь

CreateFile, WriteFile
Подскажите работающий код программы на с++, которая создаёт файл с помощью CreateFile

Ttread CreateFile
Вопрос такой. Создал поток. В нем вызываю функцию, которая обращается к форме (выводит сообщения)...

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

CreateFile() LPCTSTR
Помогие плиз, разобраться с проблемой. Использую функцию CreateFile(). LPCTSTR lpszSystemInfo; ...

Функция CreateFile
Добрый день. У меня такая проблема при работе с функцией: функция CreateFile возвращает -1, если ей...

CreateFile() == INVALID_HANDLE_VALUE
Вызов происходит с такими параметрами: HANDLE hFile = CreateFile( ...


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

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