【发布时间】: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。
【问题讨论】:
-
这看起来应该回答你的问题:Get address for symbol in current process in Windows
-
我发现了一个可能的重复项:stackoverflow.com/questions/23437007/…
标签: c windows dll dlopen getprocaddress