Pull to refresh
0
0

Пользователь

Send message
Код первого примера
....
HANDLE fileLock = CreateFileW(
....
 if (!fileLock)
 {
   CloseHandle(fileLock);
....

Баг №1:
CreateFileW не умеет возвращать нулевое значение совсем (см MSDN). В слечае ошибки возвращается INVALID_HANDLE_VALUE которое суть (HANDLE)(-1). Условие не сработает никогда.

Баг №2:
Если вдруг Windows совсем заболеет и CreateFileW всё-же вернёт 0 то в условии вы закрываете нулевой хэндл.
На этот случай CloseHandle может кинуть exception invalid handle.

Читать дальше перехотелось.

Information

Rating
Does not participate
Registered
Activity