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

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

Service


Fiend ©   (2002-07-09 18:21:00) 

В сервисе на Событие OnStart пытаюсь загрузить свою же библию через LoadLibrary. Не грузит. Выяснил, что GetLastError возвращает "Не найден указанный модуль.". Причём указан полный путь к ней.

В обычном приложении без базара гружу ее.
Что делать???????????????


Skier   (2002-07-09 18:56:00) [1]

>Fiend
Бывает :))


Fiend   (2002-07-09 18:55:00) [2]

отэто лажанулся я с путём3145245нцкеруенрй24кап
надо то ведь D:\CR\CRResources\Release\CRResources.Dll"
СПОС. Извини что отнял время


Fiend   (2002-07-09 18:53:00) [3]

отэто лажанулся я с путём3145245нцкеруенрй24кап
надо то ведь D:\CR\CRResources\Release\CRResources.Dll"
СПОС. Извини что отнял время


Skier   (2002-07-09 18:53:00) [4]

>Fiend
Если ты уверен что она там есть, то попробуй так :


if FileExists(UpperCase("D:\CR\CRResources\CRResources.Dll")) then ...


Fiend   (2002-07-09 18:48:00) [5]


> А что если проверить
> if FileExists("D:\CR\CRResources\CRResources.Dll") then
> ...


В натуре не нашёл.
Но она там есть!!!!!!!!!!!!!!!!!
как же так


Skier   (2002-07-09 18:45:00) [6]

>Fiend
А что если проверить
if FileExists("D:\CR\CRResources\CRResources.Dll") then ...

Будет FileExists находить библиотеку или нет ?


Fiend   (2002-07-09 18:41:00) [7]

FreeLibrary вызывается в другой процедуре, которая вызывается при остановке сервиса, след., когда сервис работает библия подгружена напостой.

Как таковой Exception не происходит. Я после загрузки библии, проверяю ее Handle на ноль (if hResourcesLibrary=0
), т.е. анализирую, загрузилась ли она.

И выясняется что она не загрузилась. тогда выполняю следующее:

Msg:= AllocMem(65535);
formatmessage(FORMAT_MESSAGE_FROM_SYSTEM,nil,GetLastError,0,Msg,100,nil);
CRService.LogMessage("


Skier   (2002-07-09 18:34:00) [8]

>Fiend
Где ты вызываешь FreeLibrary ?
И в каком месте генерится ошибка ?


Fiend   (2002-07-09 18:28:00) [9]

базара нема.

это собсно обработчик события:

procedure TCRService.ServiceStart(Sender: TService; var Started: Boolean);
begin
StartServer;
end;



а это то что он вызывает:

procedure StartServer;
var Reg: TRegIniFile;
Msg: PChar;
begin
if CommunicationThread<>nil then exit;
Reg:= TRegIniFile.Create;
Reg.OpenKey("CRS", true);
ConnectionString:= Reg.ReadString("CRS","ConnectionString","");
Reg.Free;
if Connections=nil
then Connections:=TList.Create;

if hResourcesLibrary=0
then hResourcesLibrary:=LoadLibrary("D:\CR\CRResources\CRResources.Dll");

if hResourcesLibrary=0
then begin
Msg:= AllocMem(65535);
formatmessage(FORMAT_MESSAGE_FROM_SYSTEM,nil,GetLastError,0,Msg,100,nil);
CRService.LogMessage("


Skier   (2002-07-09 18:25:00) [10]

>Fiend
А что если код показать ?


Наверх

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