c++ - 如何从 dll 中调用函数?

标签 c++ c dll function call

如何从 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/

相关文章:

c - 如何防止vim在:make command?之后使用错误的视口(viewport)

C++ 运行时检查失败 #0 - ESP 的值未在函数调用中正确保存

c# - .NET 库编辑后无需重新编译程序

c# - SSIS 如何在脚本任务中执行 dll(未找到 SharePoint 函数)

C++ 对抽象父级中继承子级的引用

c++ - 将多映射迭代器转换为随机访问迭代器

c++ - 通过引用传入的值的 constexpr

c - 快速读取文件(stream_lf 格式)

c - 如何检查变量是否为整数类型

C++ 异常 : out_of_range_error from Programming Principles