【问题标题】:Win32 equivalent of dlopen(NULL, ...)Win32 等效于 dlopen(NULL, ...)
【发布时间】:2020-10-23 13:56:12
【问题描述】:

在 Windows 上是否有与 dlopen(NULL, ...) 等效的简单方法?

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

void *lib = dlopen(NULL, RTLD_NOW);

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

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

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

【问题讨论】:

标签: c windows dll dlopen getprocaddress


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多