Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / CreateFile, char, TEXT(quote) / 4 сообщений из 4, страница 1 из 1
10.12.2012, 22:17
    #38073306
mr.Jack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateFile, char, TEXT(quote)
Привет. Есть такой код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
char cFileName[100] = "";

cout << "Enter a file name: ";
cin >> cFileName;

hFile = CreateFile((LPCWSTR)(cFileName), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == NULL || hFile == INVALID_HANDLE_VALUE) {
	printf("Creating file error (%s): (code: %d)\n", cFileName, GetLastError());
	return 1;
}
...


при таком раскладе GetLastError() == 2, т.е. ERROR_FILE_NOT_FOUND . Однако, если первым параметром CreateFile сделать TEXT("path_to_file"), то все открывается нормально. Почему так происходит? Ведь в первом случае все сделано верно с первого взгляда.. что такого необычного делает TEXT(quote) ?
...
Рейтинг: 0 / 0
10.12.2012, 22:22
    #38073310
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateFile, char, TEXT(quote)
mr.JackВедь в первом случае все сделано верно с первого взгляда..
Принудительно приводить char* к wchar* это сильные грабли. Укороченные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.12.2012, 12:42
    #38073949
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateFile, char, TEXT(quote)
Проект видимо в юникоде и CreateFile определен, как #define CreateFile CreateFileW.
CreateFileW требует имя файла в юникоде, а ты подсовываешь в ansi.
Варианта 2:
-использовать ansi версию CreateFileA вместо CreateFile.
-преобразовать ansi строку в юникод строку функцией MultiByteToWideChar.
...
Рейтинг: 0 / 0
11.12.2012, 15:42
    #38074340
kosh the best
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateFile, char, TEXT(quote)
> что такого необычного делает TEXT(quote)
возьмите и посмотрите
он определен в заголовках winapi
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / CreateFile, char, TEXT(quote) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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