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

Вниз

Application.Exename в DLL   Найти похожие ветки 

 
SHS   (2004-05-01 09:06) [0]

Имя исполняемого файла могу узнать через Application.Exename, как узнать это для своей DLL? Знаю что можно через GetModuleFilename, ещё есть варианты?


 
Kerk ©   (2004-05-01 11:14) [1]

Чем GetModuleFileName не устраивает?


 
SHS   (2004-05-01 13:44) [2]

Kerk, странная у тебя манера, вопросом на вопрос отвечать... Ну, ладно, GetModuleFilename меня полностью устраивает, а теперь посмотри на мой вопрос и ответь, если знаешь.

P.S. Меня интересует, делается ли это только через WinAPI или также можно средствами Delphi?


 
Юрий Зотов ©   (2004-05-01 15:32) [3]

> SHS

Можно и средствами Delphi, только собственный Application в DLL надо подменить на Application из EXE. Для этого в DLL пишем:

var
 OldApp: TApplication;

procedure ReplaceApp(App: TApplication);
begin
 OldApp := Application;
 Application := App
end;

procedure RestoreApp;
begin
 Application := OldApp
end;

И теперь сразу после загрузки DLL надо вызвать:
ReplaceApp(Application)
а перед выгрузкой - RestoreApp.


 
default ©   (2004-05-01 20:19) [4]

нет, только через Win32 API
ParamStr(0), TApplication.ExeName используют GetModuleFileName
поэтому код с GetModuleFileName(HInstance, ...) самый быстрый...


 
Palladin ©   (2004-05-01 20:34) [5]


> SHS   (01.05.04 13:44) [2]

Ну а все таки чем?


 
Юрий Зотов ©   (2004-05-01 22:39) [6]

> default ©   (01.05.04 20:19) [4]

Так все-таки: "только" или "самый быстрый"? Это же разные вещи.
:о)


 
Dimaxx ©   (2004-05-01 23:15) [7]

Не парься и вызывай GetModuleFileName


 
SHS   (2004-05-02 12:02) [8]

> Palladin ©   (01.05.04 20:34) [5]
Да просто я использовал для DLL:
iFile: array[0..MAX_PATH + 2] of char;
GetModuleFileName(hInstance, iFile, MAX_PATH);

А вот это для EXE:
ChangeFileExt(Application.ExeName, ".ini");
У меня возник вопрос, есть ли что-нибудь подобное для DLL.
Спросил для общего развития, чтобы знать наверняка.

Всем огромное спасибо за разъяснения, с уважением



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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
14-1082190660
zaxxx
2004-04-17 12:31
2004.05.16
Здесь реальные программисты есть? Ни одного умного ответа


1-1082750758
ALF
2004-04-24 00:05
2004.05.16
Самодельный скин к программе и системные шрифты


14-1082984976
Карелин Артем
2004-04-26 17:09
2004.05.16
RAR - самый крутой архиватор.


4-1079983789
Ангел.
2004-03-22 22:29
2004.05.16
LoadAccelerators


3-1082468480
MakNik
2004-04-20 17:41
2004.05.16
Как освобождать память, занятую SQL-сервером?