Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

С++ [Как вызвать функцию из длл лежащей в одной папке с программой?]

  • Автор темы Автор темы uonese
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2020
Сообщения
15
Реакции
1
Нужно вызвать функцию из длл лежащей с ней в одной папке на С++
function Inject(mem: Pointer; pid: Cardinal): Boolean cdecl; external 'Loader.dll';
 
Последнее редактирование:
Загружаешь библиотеку через HMODULE mod = LoadLibraryA("Loader.dll");
Находишь адрес функции void* func = GetProcAddress(mod, "Inject");
Вызываешь нужную функцию ((bool (*)(void*, uint32_t))func)(mem, pid);
Соглашение вызова и типы параметров возможно нужно подредактировать (не могу знать какие у тебя точно).
 
Загружаешь библиотеку через HMODULE mod = LoadLibraryA("Loader.dll");
Находишь адрес функции void* func = GetProcAddress(mod, "Inject");
Вызываешь нужную функцию ((bool (*)(void*, uint32_t))func)(mem, pid);
Соглашение вызова и типы параметров возможно нужно подредактировать (не могу знать какие у тебя точно).
 
Последнее редактирование:
Дело в том что не известен адрес функции
Ты подгружаешь библиотеку в адресное пространство процесса через LoadLibraryA, а GetProcAddress находит адрес нужной функции в загруженной библиотеке, и ты спокойно его можешь вызывать.
Если дллка лежит в ресурсах, то используй LoadResource, придется загрузить ее на диск, потому что виндовый загрузчик умеет только из файла, иначе только писать мануалмап.
 
Назад
Сверху Снизу