Вниз
Скачать: CL | DM;

Определить путь к DLL из EXE   Найти похожие ветки 

 
Ольга ©   (2011-03-23 15:48) [0]

Есть DLL, которая является COM-объектом. На компе у пользователя этих DLL разных версий расплодилось в N директориях. Я хочу при загрузке своей программы определить какая DLL была зарегистрирована. Пытаюсь прочитать путь из реестра, но, видимо, криво написанная функция выдает пусто. Текст функции:

function GetDLLPath(NameDLL: string): string;
var
  MyReg : TRegistry;
  ST: string;
  ListGUID: TStringList;
  i: Integer;
begin
 ListGUID:=TStringList.Create;
 MyReg := TRegistry.Create;
 MyReg.RootKey:=HKEY_CLASSES_ROOT;
 MyReg.OpenKey("CLSID", false);
 MyReg.GetKeyNames(ListGUID);
 MyReg.CloseKey;
 for i:=0 to ListGUID.Count-1 do
 if MyReg.OpenKey("\CLSID\"+ListGUID[i]+"\InprocServer32",FALSE) then
 begin
   if MyReg.GetDataType("InprocServer32")=rdString then
   begin
     ST:=MyReg.ReadString("InprocServer32");
     if POS(NameDLL,ST)>0 then
        Result:=ST;
   end;
 end;
 MyReg.Free;
 ListGUID.Free;
end;


 
Rouse_ ©   (2011-03-23 16:45) [1]

GetModuleHandle + GetModuleFileName


 
Игорь Шевченко ©   (2011-03-23 17:25) [2]


>  криво написанная функция выдает пусто


криво написанную функцию выпрямляют путем отладки


> Я хочу при загрузке своей программы определить какая DLL
> была зарегистрирована.


а что значит в данном контексте "какая" ? В каком каталоге ?

Допустим, C:\Documents and Settings\Foo\Рабочий стол


 
Ольга ©   (2011-03-24 16:50) [3]


> GetModuleHandle + GetModuleFileName

А ларчик просто открывался :)
Спасибо.


 
Ольга ©   (2011-03-24 16:53) [4]


> криво написанную функцию выпрямляют путем отладки

Согласна.
Но иногда, когда несколько часов тупо бьешься не туда, выпрямлялка перестает работать :)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.055 c
6-1261978289
Tornado
2009-12-28 08:31
2013.03.22
Отправка почты через MS Exchange сервер


15-1348607335
MastaK
2012-09-26 01:08
2013.03.22
Передачи про животных


2-1342074698
Sergey
2012-07-12 10:31
2013.03.22
просьба к участникам быть взаимовежливыми


15-1339736544
AV
2012-06-15 09:02
2013.03.22
с одной стороны - в отпуске. С другой - все неправильно


2-1342617866
Andrey K
2012-07-18 17:24
2013.03.22
Как в ShortCut вставить цифру с боковой клавиатуры.




   Наверх