@Chaiseel

Как получить имя импортированной из DLL функции?

Допустим, у меня есть имя функции, которую я хочу загрузить из DLL:
char* fn = "myFunctionName";
Если необходимо получить указатель на функцию с именем fn, то всё просто:
TFuncPointer pFunc = (TFuncPointer)GetProcAddress(myDLLinstance, fn);

Но что делать, если у меня есть указатель pFunc на функцию, но нету её имени fn, которое требуется получить? Есть ли возможность получать не указатель, имея название, а наоборот - название, имея указатель?
Прямо сейчас я просто перечисляю все существующие имена импортируемых функций, получаю для всех их указатели и сравниваю с ними pFunc, чтобы определить имя функции, к которой он относится. Но это очень медленно работает. Есть ли более быстрое и правильное решение?
  • Вопрос задан
  • 362 просмотра
Пригласить эксперта
Ответы на вопрос 2
@vilgeforce
Раздолбай и программист
Можно руками парсить таблицу экспортов: существенно сложнее, но должно быть и быстрее. Ваш подход, в принципе, тоже должен быть быстр...
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Есть ли возможность получать не указатель, имея название, а наоборот - название, имея указатель?

Поиском в таблице экспорта. Однако у функции может быть и несколько имён, и ни одного (экспорт по номеру).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы