Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Service   Найти похожие ветки 

 
Fiend ©   (2002-07-09 18:21) [0]

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

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


 
Skier ©   (2002-07-09 18:25) [1]

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


 
Fiend ©   (2002-07-09 18:28) [2]

базара нема.

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

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:34) [3]

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


 
Fiend ©   (2002-07-09 18:41) [4]

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:45) [5]

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

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


 
Fiend ©   (2002-07-09 18:48) [6]


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


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


 
Fiend ©   (2002-07-09 18:53) [7]

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


 
Skier ©   (2002-07-09 18:53) [8]

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


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


 
Fiend ©   (2002-07-09 18:55) [9]

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



 
Skier ©   (2002-07-09 18:56) [10]

>Fiend
Бывает :))



Страницы: 1 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
1-70811
Malax
2002-07-10 15:44
2002.07.22
Мышь


6-70849
Ajax
2002-05-11 12:25
2002.07.22
Определение активного соединения


14-70879
kaif
2002-06-21 04:42
2002.07.22
Любимый шрифт бухгалтера


1-70699
Rubber
2002-07-09 06:47
2002.07.22
DOS ASCII в TMemo?


1-70693
jonik pegas
2002-07-11 10:33
2002.07.22
Копирование потомков Tpersistent Assign-ом