Win32 等效于 dlopen(NULL, ...)

Win32 equivalent of dlopen(NULL, ...)

提问人:Jarhmander 提问时间:7/3/2020 最后编辑:Jarhmander 更新时间:8/18/2020 访问量:2059

问:

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

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

void *lib = dlopen(NULL, RTLD_NOW);

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

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

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

c windows dll dlopen getprocaddress

评论

1赞 Andrew Henle 7/3/2020
这看起来应该回答您的问题:在 Windows 中获取当前进程中符号的地址
1赞 Jarhmander 7/4/2020
我发现了一个可能的重复项:stackoverflow.com/questions/23437007/......

答:

2赞 Brecht Sanders 8/18/2020 #1

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