C Win32等效于dlopen(空,…)
在Windows上是否有一个简单的等价物C Win32等效于dlopen(空,…),c,windows,dll,dlopen,getprocaddress,C,Windows,Dll,Dlopen,Getprocaddress,在Windows上是否有一个简单的等价物dlopen(NULL,…) POSIX(或至少Linux)上的行为是:返回的句柄可用于查找可执行文件以及依赖共享对象上的导出符号。简言之,遵循 void *lib = dlopen(NULL, RTLD_NOW); 执行dlsym(lib,“memcpy”)将返回memcpy的符号 在win32上,GetModuleHandle(NULL)几乎是等效的,只是不搜索依赖DLL集的符号GetProcAddress(lib,“memcpy”)返回NULL 有
dlopen(NULL,…)
POSIX(或至少Linux)上的行为是:返回的句柄可用于查找可执行文件以及依赖共享对象上的导出符号。简言之,遵循
void *lib = dlopen(NULL, RTLD_NOW);
执行dlsym(lib,“memcpy”)
将返回memcpy的符号
在win32上,GetModuleHandle(NULL)
几乎是等效的,只是不搜索依赖DLL集的符号GetProcAddress(lib,“memcpy”)
返回NULL
有什么想法吗?注意:当然,在我的应用程序中,我不想仅仅访问memcpy
,而是从FFI访问一些更复杂的符号。您可能想检查哪个是适用于Windows的dlopen()
实现(使用前面提到的函数GetModuleHandle
/GetProcAddress
).这似乎应该回答您的问题:我发现了一个可能的副本: