CreateFile Возвращает отрицательный дескриптор - PullRequest
2 голосов
/ 02 ноября 2011

Любые идеи, почему функция createfile () будет возвращать -1.

Handle = CreateFile(filename, &H80000000, 0, 0, 3, &H80, 0)

Это выполняется несколько раз.Я подумал, может быть, файл не закрывается должным образом?

РЕДАКТИРОВАТЬ

Err.LastllError возвращает 32.

Ответы [ 2 ]

4 голосов
/ 02 ноября 2011

Вы, вероятно, правы, что не закрыли файл где-нибудь. Я бы начал с того, что смотрю, где открываю файл, и проверяю, есть ли у меня процедура обработки ошибок. В обработчике ошибок я бы проверил значение «дескриптора» и, если это действительно, вызовите CloseHandle (дескриптор). Кроме того, поскольку вы открываете файл для доступа на чтение, вы можете изменить параметр dwShareMode на 1, чтобы разрешить последующее открытие операций чтения для того же файла.

4 голосов
/ 02 ноября 2011

Ошибка 32: ERROR_SHARING_VIOLATION ( ссылка ), что означает, что какой-то другой процесс все еще имеет открытый файл.

...