Я не очень хорошо разбираюсь в DLL, поэтому я создал простой пример, с которым мне хотелось бы помочь. У меня здесь простая dll.Как мне вызвать функцию из моей DLL во время ссылки во время выполнения?
// HelloDLL.cpp
#include "stdafx.h"
int __declspec(dllexport) Hello(int x, int y);
int Hello(int x, int y)
{
return (x + y);
}
Как бы вызвать функцию Hello(int x, int y)
в отдельной программе, когда я бежал LoadLibrary()
? Вот приблизительная схема того, что у меня есть до сих пор, но я не уверен, что то, что у меня есть, является правильным, и если да, то как это сделать.
// UsingHelloDLL.cpp
#include "stdafx.h"
#include <windows.h>
int main(void)
{
HINSTANCE hinstLib;
// Get the dll
hinstLib = LoadLibrary(TEXT("HelloDLL.dll"));
// If we got the dll, then get the function
if (hinstLib != NULL)
{
//
// code to handle function call goes here.
//
// Free the dll when we're done
FreeLibrary(hinstLib);
}
// else print a message saying we weren't able to get the dll
printf("Could not load HelloDLL.dll\n");
return 0;
}
Может ли кто-нибудь помочь мне справиться с вызовом функции? Любые особые случаи, о которых я должен знать для будущего использования DLL?
'GetProcAddress()' будет то, что вы ищете; он задокументирован в [MSDN] (http://msdn.microsoft.com). –