Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как из DLL узнать узнать полный путь к этой DLL

Delphi , Файловая система , DLL и PlugIns

Как из DLL узнать узнать полный путь к этой DLL


function GetModuleFileNameStr(Instance: THandle): string;
var
  buffer: array [0..MAX_PATH] of Char;
begin
  GetModuleFileName( Instance, buffer, MAX_PATH);
  Result := buffer;
end;

GetModuleFileNameStr(Hinstance); // dll name
GetModuleFileNameStr(0); // exe name

Перевод на русский язык:

Функция GetModuleFileName используется для получения полного пути модуля (DLL или EXE) из его инстанс-хандла. Инстанс-хандл можно получить с помощью функции GetModuleHandle для DLL или GetCurrentProcess для основного исполняемого файла.

В вашем коде есть два инстанс-хэндла:

  1. Hinstance: Это инстанс-хандл для DLL (вы передаете его в GetModuleFileNameStr).
  2. 0: Это инстанс-хандл для текущего процесса, представляющий основной исполняемый файл.

Чтобы определить полный путь DLL или EXE, вы можете вызвать функцию GetModuleFileName с соответствующим инстанс-хэндлом и сохранить результат в буфере. Функция GetModuleFileNameStr обертывает эту функциональность, объявляя буфер размером MAX_PATH, вызывая GetModuleFileName с этим буфером, и возвращая содержимое буфера в виде строки.

Вот что делает каждая строка:

  • GetModuleFileName(Instance, buffer, MAX_ PATH): Вызывает функцию GetModuleFileName с инстанс-хэндлом (Instance) и буфером для хранения результата. Третий аргумент (MAX_ PATH) specifies the size of the buffer.
  • Result := buffer;: Присваивает содержимое буфера (полный путь модуля) переменной Result, которая возвращается функцией.

Когда вы вызываете GetModuleFileNameStr(Hinstance), она получает полный путь DLL с инстанс-хэндлом Hinstance. Когда вы вызываете GetModuleFileNameStr(0), она получает полный путь основного исполняемого файла (процесса самого).

Чтобы получить полный путь DLL или EXE, просто вызовите GetModuleFileNameStr с соответствующим инстанс-хэндлом:

var
  dllPath: string;
  exePath: string;

dllPath := GetModuleFileNameStr(Hinstance);
exePath := GetModuleFileNameStr(0);

Теперь вы можете использовать эти переменные для доступа к полным путям DLL и EXE.

В статье описывается способ извлечения полного пути к DLL-файлу с помощью функции GetModuleFileName и создания строковой переменной для хранения полученного результата.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: DLL и PlugIns ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 20:27:39/0.0062129497528076/2