Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизDll Найти похожие ветки
← →
Zloy_dima (2004-10-27 16:12) [0]Добрый день. Как можно при обращении к DLL, получить путь в самой DLL, где она лежит? Спасибо.
← →
Reindeer Moss Eater © (2004-10-27 16:21) [1]function AppFileName: string;
var FileName: array[0..255] of Char;
begin
if IsLibrary then begin
GetModuleFileName(HInstance, FileName, SizeOf(FileName) - 1);
Result := StrPas(FileName);
end
else Result := ParamStr(0);
end;
← →
Digitman © (2004-10-27 16:21) [2]что значит "при обращении" ?
← →
Zloy_dima (2004-10-27 16:22) [3]Reindeer: Здесь выдаст путь к модулю который вызывает Dll, а мне нужно путь откуда Dll вызывается...
← →
Reindeer Moss Eater © (2004-10-27 16:24) [4]Что за бред
← →
Zloy_dima (2004-10-27 16:26) [5]Reindeer Moss Eater: путь где находится Dll, которую вызывают...
← →
Reindeer Moss Eater © (2004-10-27 16:27) [6]Нарисуй в dll экспортируемую функцию которая скажет всем где лежит загружаемая DLL
← →
Digitman © (2004-10-27 16:29) [7]что значит "вызывают" ?
чт за детсад ?
есть понятия "вызывающая подпрограмма" и "вызываемая подпрограмма"
первая выполняет LoadLibrary, получает точку входа (GetProcAddress) в подпрограмму и передает ей управление
вторая - исполняет код, которому передано управление из 1-й
← →
Digitman © (2004-10-27 16:32) [8]Дима, золотце ...
Ну нет такого понятия "вызвать DLL" !
Есть понятия "загрузить DLL в адресное пространство текущего процесса" и "вызвать на выполнение одну из экспортируемых функций загруженной DLL" ..
← →
Zloy_dima (2004-10-27 16:32) [9]Digitman : Я умные высказывания не просил...
← →
begin...end © (2004-10-27 16:32) [10]
> Zloy_dima (27.10.04 16:12)
> Как можно при обращении к DLL, получить путь в самой DLL,
> где она лежит?
Как же ты к ней "обращаешься", если не знаешь, где она лежит?
← →
Reindeer Moss Eater © (2004-10-27 16:33) [11]Как же ты к ней "обращаешься", если не знаешь, где она лежит?
Это забота винды.
← →
Digitman © (2004-10-27 16:34) [12]
> Zloy_dima
Дима, ты злой.
дурью-то не майся и прислушивайся к контрвопросом, если жаждешь помощи.
← →
Zloy_dima (2004-10-27 16:35) [13]Reindeer Moss Eater: Обращаюсь не я...
← →
Reindeer Moss Eater © (2004-10-27 16:36) [14]Обращаюсь не я...
Я знаю, что не ты, а программа.
И что?
← →
begin...end © (2004-10-27 16:38) [15]
> [11] Reindeer Moss Eater © (27.10.04 16:33)
То есть? Перед тем, как использовать подпрограммы из DLL, последнюю нужно загрузить с помощью LoadLibrary. И в качестве параметра Loadlibrary передаётся имя файла этой самой DLL. Так что знать, где она лежит, нужно. Хотя бы для того, чтобы вначале её загрузить. При чём тут "забота винды"?
← →
Reindeer Moss Eater © (2004-10-27 16:39) [16]При чём тут "забота винды"?
При том.
← →
Reindeer Moss Eater © (2004-10-27 16:43) [17]begin...end ©
1.Loadlibrary вовсе не обязательна.
2.Читай документацию по LoadLibrary.
Знать, "где лежит" - не обязательно.
← →
Digitman © (2004-10-27 16:43) [18]
> получить путь в самой DLL
Дима - батонокидатель... это понятно ...
При своем гоноре он не в состоянии даже на пальцах объяснить, что в какой-то момент времени некий код ДЛЛ, разработанный им, получает управление, и в этот момент ему якобы необходимо получить инф-цию о пути к файлу, из которого в тек.процесс загружен образ его ДЛЛ.
← →
Reindeer Moss Eater © (2004-10-27 16:46) [19]У меня подозрение, что он хочет знать полный путь к длл в хост приложении, но грузит dll не указывая полного пути.
Либо просто приколист очередной.
← →
Digitman © (2004-10-27 16:48) [20]а терминология - это для "шибко умных" Циферманов. ... и иже с ними олухами.
Злым Димам не пристало общаться с ними на языке Win32-программистов.
"вызвали ДЛЛ" - и все тут !
все , мол, должны понимать, что я, Злой Дима, под этим понимаю ... телепатов вокруг - дохрена, вот и нехай догадываются ... а я, Злой Дима, буду сидеть и в носу ковырять, пока они "телепатируют".
Что сказать ? Замечательно !!
← →
begin...end © (2004-10-27 16:49) [21]
> [17] Reindeer Moss Eater © (27.10.04 16:43)
> 2.Читай документацию по LoadLibrary.
А, ну в смысле, что можно только имя указать, без пути? Убедили...
← →
Zloy_dima (2004-10-27 16:49) [22]Пишу поподробнее, прога вызывает мою DLL (1), которая в свою очередь использует другую DLL (DLL2). Так вот чтобы мне загрузить DLL2 мне нужно знать где лежит DDL1.
← →
Reindeer Moss Eater © (2004-10-27 16:51) [23]Так вот чтобы мне загрузить DLL2 мне нужно знать где лежит DDL1.
Нахрен не нужно этого знать.
А ответ на вопрос [22] в первом посте.
← →
Digitman © (2004-10-27 16:52) [24]
> Reindeer Moss Eater © (27.10.04 16:46) [19]
пожоже что не так.
ключ.фраза - "в самой ДЛЛ".
человек в принципе не понимает. что его код получает управление.
да по барабану. где этот код находится - в ДЛЛ или ХренЛЛ ! Согласен ? ты уже в [1] дал ответ на этот вопрос, а автор все выеживается.
()
← →
Reindeer Moss Eater © (2004-10-27 16:54) [25]Ну тогда goto пост №1
← →
Zloy_dima (2004-10-27 16:56) [26]Вторую DLL нужно загрузить не из основной программы, а из DLL1
← →
Reindeer Moss Eater © (2004-10-27 16:59) [27]А нам пофик
← →
Digitman © (2004-10-27 16:59) [28]о боже...
Дима, ты - тупой ?
тебе в посте [1] RMD дал ГОТОВУЮ ф-цию, которую ты можешь вызвать в ЛЮБОЙ точке кода своей ДЛЛ1, дабы получить полный путь к ней !
в предположении, что ДЛЛ2 лежит в том же каталоге, что и каталог ДЛЛ1, загрузить ДЛЛ2 - плевое дело !
ну ЧТО непонятно-то еще, а ?(
← →
Zloy_dima (2004-10-27 17:04) [29]Сам ты тупой!!! Он выдаст путь не к ДЛЛ, а модуля который ее вызывает...
← →
Reindeer Moss Eater © (2004-10-27 17:06) [30]Оставим чудака в покое.
← →
Reindeer Moss Eater © (2004-10-27 17:10) [31]Он выдаст путь не к ДЛЛ, а модуля который ее вызывает...
Совершенно верно.
Модуля, который вызывает эту функцию.
Вызвать функцию в хост приложении - получишь имя exe.
Вызвать функцию из кода DLL - получишь имя DLL.
← →
Digitman © (2004-10-27 17:19) [32]
> Zloy_dima (27.10.04 17:04) [29]
ты "острый" ?
тогда какого черта ты не не читаешь и не вникаешь в станд.справку к ф-ции
The GetModuleFileName function retrieves the full path and filename for the executable file containing the specified module.
?!
какого шута, "острый" ты наш Злой Дима ?
ты мозжечком вообще-то намерен шевелить ?
← →
Digitman © (2004-10-27 17:21) [33]
> Zloy_dima
или ты в принципе не понимаешь, что ДЛЛ-файл есть ТАКОЙ ЖЕ executable file, что и ЕХЕ-файл ?!
тоже мне .. умник ..
← →
Zloy_dima (2004-10-27 17:28) [34]Digitman: Досвидания Острый! Почту посмотри...
← →
Digitman © (2004-10-27 17:32) [35]Дима, а она мне нужна, твоя почта ? тебе нужно выразить свои эмоции по поводу Цифермана ? ну так и выражай их здесь ! чего секретничать-то ?)
нет бы молчаливое "спасибо" сделать, что разжевали ему механику как могди .. так нет ! ему теперь почтой нужно из штанов выпрыгивать.
← →
Digitman © (2004-10-27 17:34) [36]Дима, разреши твою почту процитировать ?
Вот тебе приятно будет !
Тебе че п%%%%к, негде свои вы%%%ны чтоли кидать???
Умный самый нашелся...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.036 c