在 Windows 上是否有以下等效项?
#include <dlfcn.h>
#include <stdio.h>
void main_greeting(void)
{
printf("%s\n", "hello world");
}
void lib_func(void)
{
void (*greeting)(void) = dlsym(RTLD_MAIN_ONLY, "main_greeting");
greeting ? greeting() : printf("%s\n", dlerror());
}
int main(void)
{
lib_func();
return 0;
}
这是一个简短的片段,真正的目的是从动态加载的库中main_greeting
的函数 () 内部调用已知存在于主进程 ( ) 中的函数。lib_func
主进程不可修改,因此无法重写以传递回调。