powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать путь к dll изнутри dll
6 сообщений из 6, страница 1 из 1
Узнать путь к dll изнутри dll
    #39640380
Hommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
// works under Win XP (Win server 2003) or higher
function GetModuleHandleExW(Flags: DWORD; ModuleNameOrAddr: PWideChar; var ModuleHandle: HMODULE): BOOL; stdcall; external kernel32 name 'GetModuleHandleExW';

// with path
function GetDllFileName: UnicodeString;
const
  GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2;
  GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: DWORD = 4;
var
  ModuleHandle: HMODULE;
  Res: DWORD;
begin
  ModuleHandle := 0;
  SetLength(Result, 32767);
  if GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS or GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, @GetDllFileName, ModuleHandle) then
  begin
    Res := GetModuleFileNameW(ModuleHandle, PWideChar(Result), Length(Result));
    if Res = 0 then
      raise Exception.Create('GetModuleFileName fails with error: ' + SysStuff.GetLastOsErrorMessage);
    SetLength(Result, Res);
  end
  else
    raise Exception.Create('GetModuleHandleEx fails with error: ' + SysStuff.GetLastOsErrorMessage);
end;



Существует ли способ для windows 2000?
...
Рейтинг: 0 / 0
Узнать путь к dll изнутри dll
    #39640411
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HommerСуществует ли способ для windows 2000?

С начала времён существует переменная HInstance.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Узнать путь к dll изнутри dll
    #39640428
Hommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovHommerСуществует ли способ для windows 2000?

С начала времён существует переменная HInstance.

Так конечно проще. Спасибо :)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function GetDllFileName: UnicodeString;
var
  Res: DWORD;
begin
  SetLength(Result, 32767);
  Res := GetModuleFileNameW(HInstance, PWideChar(Result), Length(Result));
  if Res = 0 then
    RaiseLastOSError;
  SetLength(Result, Res);
end;


Но всё-равно, GetModuleFileNameW начиная с Windows XP.
...
Рейтинг: 0 / 0
Узнать путь к dll изнутри dll
    #39640460
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HommerНо всё-равно, GetModuleFileNameW начиная с Windows XP.Обертка над A успешно работала с Win95.
...
Рейтинг: 0 / 0
Узнать путь к dll изнутри dll
    #39640461
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hommer,

Код: pascal
1.
SysUtils.GetModuleName(HInstance)
...
Рейтинг: 0 / 0
Узнать путь к dll изнутри dll
    #39640571
Hommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ведь действительно :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать путь к dll изнутри dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]