![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятности с Service application & DLL
Чапаев © (2005-12-02 10:17:00)Delphi 2005, WinXP SP2.
Создаю проект Service Application. В обработчик события OnStart сервиса вставляю такой код: Lib:=LoadLibrary('my.dll'). При завершении работы сервиса вываливается ошибка 0xeefade (кажется, так), если в dll есть хоть одна экспортируемая функция. Если же загружать библиотеку с помощью LoadLibraryEx() с третьим параметром DONT_RESOLVE_EXTERNALS, то ошибки при завершении не возникает.
В чём тут дело?
Чапаев (2005-12-02 12:40:00) [1]
> код сервиса - сюда же ..
Обычный Service Application. В обработчик OnStart внесена одна строчка. Других изменений в коде нету. FreeLibrary в OnStop проблему не решает.
> есть ли и что именно в DllMain библиотеки
Ничего нету. По крайней мере, я туда ничего не вписывал.
> какие модули используются в библиотеке
В тестовом примере -- никаких...
> может путаешь
Да, действительно путаю. Таки DONT_RESOLVE_DLL_REFERENCES. Вот именно DONT_RESOLVE_DLL_REFERENCES и снимает проблему.
Digitman (2005-12-02 11:52:00) [2]код сервиса - сюда же ..
BiN (2005-12-02 11:52:00) [3]Интересует вот-что:
1) как ведет себя обычное приложение при загрузке той же длл
2) есть ли и что именно в DllMain библиотеки
3) какие модули используются в библиотеке
4) вас ист дас - DONT_RESOLVE_EXTERNALS (может путаешь DONT_RESOLVE_DLL_REFERENCES)
Чапаев (2005-12-02 11:11:00) [4]
library My;
function Func:Cardinal;stdcall; //stdcall понадобится в реальной библиотеке, потому и в тестовой я его прописал
begin
Result:=0;
end;
exports
Func;
end.
BiN (2005-12-02 10:21:00) [5]код длл в студию