1

dlopen(NULL, ...)在 Windows 上有一个简单的等价物吗?

POSIX(或至少 Linux)上的行为是:返回的句柄可用于查找可执行文件以及相关共享对象上的导出符号。简单来说,如下

void *lib = dlopen(NULL, RTLD_NOW);

dlsym(lib, "memcpy")将返回符号memcpy

在 win32 上,GetModuleHandle(NULL)几乎是等价的,只是不搜索符号的依赖 DLL 集;GetProcAddress(lib, "memcpy")返回NULL

任何想法?注意:当然,在我的应用程序中,我不想仅仅访问memcpy,而是一些更复杂的符号,并且来自 FFI。

4

1 回答 1

1

您可能想查看https://github.com/dlfcn-win32/dlfcn-win32这是dlopen()Windows 的实现(使用提到的函数GetModuleHandle/ GetProcAddress)。

于 2020-08-18T13:35:51.380 回答