动态库如何实现动态加载

2024-10-17 08:35:38

1、动态库之所以叫动态库,是因为在代码编译链接时,没有把库文件的代码加入到可执行文件中,所以生成的文件较小,但运行时,仍需要加载库文件。也就是说使用的时候再进行加载。

动态库如何实现动态加载

3、调用示例如下:hDll = LoadLibrary(“c:\demo\test.dll”);//加载指定路径的DLLif(hDll != NULL){ testFun =(lpFun)GetProcAddress(hDll, "test");//获取test方法的内存地址 if(testFun != NULL) { testFun(); } FreeLibrary(hDll); //释放动态库}

动态库如何实现动态加载

5、调用示例如下:handle = dlopen (argv[1], RTLD_NOW); //打开argv[1]指针指定的动态库,获得调用句柄if(!handle){fprintf (stderr, "%s\n", dlerror());exit(1);}pf_t pf=(pf_t)dlsym(handle,"test");//指针pf指向test函数在当前内存中的地址pf();//通过指针pf,调用动态库中的test函数dlclose(handle);//关闭调用动态库句柄

动态库如何实现动态加载
猜你喜欢