Экспортируйте информацию из dll и создайте экземпляр класса - PullRequest
0 голосов
/ 17 мая 2019

У меня есть DLL, в которой я знаю реализованные функции и имена классов. Тем не менее, я не знаю намного больше. Я хотел бы создать объект из этого класса в DLL и использовать методы. Как я могу это сделать? Я успешно получаю функцию из этой DLL на следующем примере:

typedef int (__stdcall *f_dll)();
std::string filename = "C:\\Test.dll";
std::wstring tmp = s2ws(filename);
HINSTANCE hGetProcIDDLL = LoadLibrary(tmp.c_str());

if (!hGetProcIDDLL)
{
    std::cerr << "Failed to load DLL" << std::endl;
    return EXIT_FAILURE;
}

// resolve function address here
f_dll func = (f_dll)GetProcAddress(hGetProcIDDLL, "function");
if (!func)
{
    std::cout << "Failed to load function inside DLL" << std::endl;
    return EXIT_FAILURE;
}

1 Ответ

0 голосов
/ 17 мая 2019

Зависит от того, что вы знаете - если у вас есть файл заголовка, который вы можете посмотреть: Динамически загружать функцию из DLL Возможно, заголовок функции неправильный.L

Если у вас нет заголовка, вы можете использовать nm (инструмент из gcc), но он работает только с файлами, скомпилированными семейством gcc.Вы должны получить некоторые символы, если они предусмотрены для отладки, которые содержат

...