![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LoadLibrary
-SeM- © (2004-09-14 13:09:00)В справке LoadLibrary при удачной загрузке возвращает хендл загруженного модуля, при неудачной - NULL (для HInstance - 0). Почему в некоторых случаях результат сравнивают с HINSTANCE_ERROR ($20)? И как правильно производить проверку?
Игорь Шевченко (2004-09-14 18:07:00) [1]-SeM- (14.09.04 17:56) [11]
> А, допустим, настройки не было какой будет Handle?
Handle будет равен адресу, который возвратился после MapViewOfFile.
-SeM- (2004-09-14 17:56:00) [2]Игорь Шевченко © (14.09.04 15:50) [9]
Ой, не прочитал [9]
> если исполняемый файл при загрузке подвергся модификации
Бррр....
Т.е. настройка релоков... А, допустим, настройки не было какой будет Handle?
Игорь Шевченко (2004-09-14 15:50:00) [3]Handle, который возвращается загрузчиком Windows есть адрес в адресном пространстве процесса, на который спроецирован исполняемый файл или адрес выделенной области памяти в swap-файле (и опять же, спроцецированной на адресное пространсто процесса), если исполняемый файл при загрузке подвергся модификации.
-SeM- (2004-09-14 15:50:00) [4]Игорь Шевченко © (14.09.04 15:47) [8]
Так пока и сделано, но совесть стала мучить.
Спасибо.
Игорь Шевченко (2004-09-14 15:47:00) [5]-SeM- (14.09.04 15:32) [7]
> Меня больше интересует что необходимо возвратить из своего
> загрузчика в случае неудачной загрузки
возвратить 0, и сказать нужный SetLastError
-SeM- (2004-09-14 15:32:00) [6]Игорь Шевченко © (14.09.04 14:57) [6]
Меня больше интересует что необходимо возвратить из своего загрузчика в случае неудачной загрузки
Игорь Шевченко (2004-09-14 14:57:00) [7]"Win31 documentation says that errors are less than HINSTANCE_ERROR and that success is greater than 32"
-SeM- (2004-09-14 14:09:00) [8]Спасибо!
Digitman (2004-09-14 14:07:00) [9]получается так ... во всяком случае пример из msdn как раз именно такой алгоритм и иллюстрирует
Игорь Шевченко (2004-09-14 14:06:00) [10]
> Почему в некоторых случаях результат сравнивают с HINSTANCE_ERROR
> ($20)
Для совместимости с Windows 3.x ?
-SeM- (2004-09-14 14:02:00) [11]Digitman © (14.09.04 13:34) [1]
Т.е. если установлен флаг SEM_NOOPENFILEERRORBOX я должен сравнивать с HINSTANCE_ERROR и соответсвенно возвращать HINSTANCE_ERROR в случае неудачной загрузки (для своего загрузчика)?
Digitman (2004-09-14 13:34:00) [12]очевидно, это связано с текущим состоянием опции интерактивной обработки ошибок (см. ф-цию SetErrorMode)