Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Непонятности с 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]

код длл в студию


Наверх

Титульная страница Поиск, карта сайта Написать письмо