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

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

Dll [D5]


Niko. ©   (2002-06-15 19:07:00) 

Как из библиотеки узнать в каком каталоге она находится. Если брать Paramstr(0) то возвращается полное имя программы, которая запустила эту библиотеку, а мне нужен каталог самой библиотеки.


VID   (2002-06-16 18:22:00) [1]

TO Guerrillero Che: ничего не просто. А если dll находиться в одной папке, а вызывающая её прога в другой ?


Набережных С.   (2002-06-16 18:01:00) [2]

Код в DLL:

function GetModuleFullName(Buff: PChar; var NumChars: integer): bool; stdcall;
var
n:integer;
begin
n:=GetModuleFileName(hInstance,Buff,NumChars-1);
Result:= n > 0;
if Result then
begin
Buff[n+1]:=#0;
NumChars:=n;
end;
end;

Вызов:

var
s:string;
n:integer;
begin
n:=MAX_PATH;
SetLength(s,MAX_PATH);
if GetModuleFullName(@s[1],n) then
ShowMessage(PChar(s))
else
RaiseLastWin32Error;
SetLength(s,0);
end;


Guerrillero Che   (2002-06-16 13:21:00) [3]

Все очень просто,используя ExtractFilePath:
ShowMessage(ExtractFilePath(ParamStr(0)));


~Rand~   (2002-06-15 22:34:00) [4]

Удалено модератором


Наверх

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