如何从 DLL 中调用函数?
我试图声明一个空指针并将 GetProcAddress 的结果存储在其中...但没有成功。我也想声明一个unsigned long int
(我在互联网上的某个地方看到了它),但我不知道如何继续。 :D
那么,有人介意帮我一把吗?
最佳答案
尝试这样的事情。
typedef int (*PFuncMethods)( int args );
hDLL = LoadLibrary(L"your.dll");
if( !m_hDLL )
return;
methods = (PFuncMethods)GetProcAddress(hDLL,"methods");
if ( !(methods) ) {
FreeLibrary(hDLL);
hDLL = NULL;
methods = NULL;
return;
}
if( methods(1) == 0) ...
方法名称也是您可能会被卡住的地方。 C++ 具有用于重载的名称重整(即使它没有重载),这取决于编译器。您可以使用 extern "C"
计算出经过修饰的名称或关闭函数的修饰。您可以使用 depends.exe 之类的工具来查看所有具有您必须使用的确切名称的函数。
在 Windows 中使用(导入)lib 文件静态链接到 DLL 会容易得多。
关于c++ - 如何从 dll 中调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016839/