![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по функции API Openfile()
koha! © (2009-02-03 02:42:00)Понимаю, что очень банально, но нужно, так как сильно сомнения терзают в правильности ее работы...
открываю файл, который явно не существует:
hFileRes := OpenFile(PChar(ResFile+'123~'),OFS,OF_READ);
if hFileRes = 0 then Begin
SendDebugMsgLastError('hFileRes = 0',GetLastError,0);
Exit;
End;
if GetLastError = HFILE_ERROR then begin
SendDebugMsgLastError('GetLastError = HFILE_ERROR',GetLastError,0);
Exit;
end;
- и в обоих случаях невозникает ни какой ошибки икод делее выполняется......
KSergey (2009-02-04 12:58:00) [1]> Eraser © (03.02.09 03:41) [1]
> Note Only use this function with 16-bit versions of Windows.
> For newer applications, use the CreateFilefunction. (c) MSDN.
И как оно его спасет?
Ну это так, к слову. Трабла-то не в том, как уже выяснено.
clickmaker (2009-02-04 11:03:00) [2]> проблемах MS с результатом функций
а какие там проблемы?
CreateFile тоже -1 вернет при ошибке, так что с совместимостью тут как раз все в порядке
это просто из далеких времен пошло, когда 0 предполагался как валидный дескриптор файла и теоретически может им быть
Германн (2009-02-04 01:38:00) [3]А уж сколько раз АП говорил о постоянно длящихся проблемах MS с результатом функций.
koha! (2009-02-04 00:29:00) [4]
> clickmaker © (03.02.09 10:40) [5]
вот этот каксяк я и недоглядел..... :(
clickmaker (2009-02-03 10:40:00) [5]> if hFileRes = 0 then Begin
if hFileRes = HFILE_ERROR
потому что
#define HFILE_ERROR ((HFILE)-1)
Anatoly Podgoretsky (2009-02-03 07:45:00) [6]> Eraser (03.02.2009 4:20:03) [3]
И один уже прибежал.
Eraser (2009-02-03 04:20:00) [7]> [2] koha! (03.02.09 04:10)
а что там не понятного? обратная совместимость.
ведь полно писателей, которые MSDN не читают и используют устаревшие функции. если эти функции убрать, то эти писатели первыми же побегут кидать тухлые яйца в билли и имперю зла мелкомягких.
koha! (2009-02-03 04:10:00) [8]Мда.... а в самом низу подписано:
Requirements
Client Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.
Server Requires Windows Server "Longhorn", Windows Server 2003, Windows 2000 Server, or Windows NT Server.
Header Declared in Winbase.h; include Windows.h.
Library Use Kernel32.lib.
DLL Requires Kernel32.dll.
Все чаще и чаще с болшим трудом понимаю мелко-магких..... :)
Eraser (2009-02-03 03:41:00) [9]> [0] koha! (03.02.09 02:42)
Note Only use this function with 16-bit versions of Windows. For newer applications, use the CreateFile function.
(c) MSDN.