Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.02 c
14-1083088168
Hawk2
2004-04-27 21:49
2004.05.16
Анимашки


3-1082362660
}|{yk
2004-04-19 12:17
2004.05.16
Как создавать оптимальные планы запросов в Interbase?


3-1082451811
ivs
2004-04-20 13:03
2004.05.16
ora-01041: hostdef расширение не существует


14-1083030908
Думкин
2004-04-27 05:55
2004.05.16
С днем рождения! 27 апреля.


14-1083085514
MDT
2004-04-27 21:05
2004.05.16
Форум для специалистов по математической статистике




   Наверх