Главная страница
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.012 c
7-70949
Merle Corey
2002-04-27 14:26
2002.07.22
Генерация GUID


1-70801
Кирилл Усов
2002-07-10 11:21
2002.07.22
Проблемы с памятью


14-70899
dron1
2002-06-24 15:28
2002.07.22
поле с возможностью выбора


3-70579
RDA
2002-06-27 15:20
2002.07.22
Firebird и IBAdmin3


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