Звучит так, как будто вас может заинтересовать то, что, как я считаю, называется «перенаправление функций».Это позволяет вам экспортировать функцию из библиотеки DLL, которая в действительности реализована в другой библиотеке DLL.
Должно быть самое эффективное решение
- Вам не понадобятся вызовы LoadLibrary () / GetProcAddress ()
- При импорте из вашей экспортной DLL, загрузчик хранит адрес реального воплощения в таблице импорта, поэтому его один
call
и один jmp
Вероятно, самый простой способ реализовать это с чем-то вроде
#pragma comment(linker, "/export:ExportedFuncName=ActualDll.ActualFuncName")
В случае, если вам интересно, это практически то же самое, что передать "/export:ExportedFuncName=ActualDll.ActualFuncName" в командной строке компоновщика.Это также возможно сделать с помощью секции экспорта файла определения модуля (.DEF).Подробности смотрите в нижней части здесь .