Главная страница
    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.46 MB
Время: 0.044 c
1-1083680338
Proger
2004-05-04 18:18
2004.05.16
ТРИАНГУЛЯЦИЯ


9-1073399784
Hookey
2004-01-06 17:36
2004.05.16
Подскажите математико-экономические алгоритмы...


3-1082558009
Masa
2004-04-21 18:33
2004.05.16
Как узнать, что юзверь передвинулся на другую запись в датасете ?


14-1082793068
Beglec
2004-04-24 11:51
2004.05.16
Извините не смог удержаться


14-1082631749
Knight
2004-04-22 15:02
2004.05.16
Можно ли в XP сделать одну запись, типа, Default...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский