Вы используете недействительный код, который не компилируется. И вы используете неправильный формат для строкового литерала. Попробуйте вместо этого:
#include <windows.h>
int main() {
HANDLE hFile = CreateFile("c:\\nader", GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
CloseHandle(hFile);
}
return 0;
}
Это, как говорится, с помощью GENERIC_READ
, FILE_SHARED_READ
и CREATE_ALWAYS
вместе не имеет никакого смысла, если ваша единственная задача не просто создать файл, но не делать какой-либо ввод/вывода с ним. GENERIC_READ
делает hFile
только для чтения, FILE_SHARE_READ
гарантирует, что никто не может писать в тот же файл, пока вы его открываете, а CREATE_ALWAYS
гарантирует, что файл всегда пуст, когда он открыт, поэтому нет возможности когда-либо иметь какие-либо данные читать от hFile
. Если вы хотите прочитать данные из файла, по крайней мере, измените CREATE_ALWAYS
на OPEN_EXISTING
или OPEN_ALWAYS
, чтобы все существующие данные файла сохранялись для чтения.
Используйте правильное экранирование: '" c: \\ nader "' –
Проверка кодов возврата и ошибок всегда является хорошей идеей. –
'#include' и '... var = ...' перед 'CreateFile'. –
i486