@V1kt0rR

Как импортировать классы и его методы из DLL?

Есть библиотека(dll) mscoree.dll, из которой я импортировал функцию
typedef HRESULT(WINAPI* DLClrCreateInstance) (REFCLSID, REFIID, LPVOID*);
HMODULE MsCore = LoadLibraryA("mscoree.dll");

	if (MsCore == NULL)
		return -1;

	DLClrCreateInstance CreateDL = (DLClrCreateInstance)GetProcAddress(MsCore, "CLRCreateInstance");
	if (CreateDL == NULL)
		return -1;

	ICLRMetaHost* pMetaHost = NULL;
	HRESULT hr;

	hr = CreateDL (CLSID_CLRMetaHost, IID_ICLRMetaHost, (VOID**)&pMetaHost);

Дальше для работы необходимо импортировать ICLRMetaHost::GetRuntime(https://learn.microsoft.com/en-us/dotnet/framework...)
Вопрос, как это сделать?
Через GetProcAddres() сделать этого не удается.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
Никаких классов и методов непосредственно в DLL нет, для того чтобы такая информация была в распоряжении у компилятора, с С++ библиотеками поставляется заголовочные файлы (это если очень упрощённо рассуждать).

Правда у тебя вроде как всё уже должно быть подключено, раз твой код компилируется. Что ты вообще хочешь сделать? GetRuntime - это метод у объекта, реализующего интерфейс ICLRMetaHost, нафига ты его пытаешься получить через GetProcAddress? Его нужно вызывать через pMetaHost, в который тебе функция CLRCreateInstance любезно записала указатель на созданный объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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