调用一个DLL中的函数有两种方法:载入时 和 运行时.
1.载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。
2.运行时动态链接(run-time dynamic linking),运行时可以通过 LoadLibrary 或 LoadLibraryEx 函数载入DLL。DLL载入后,模块可以通过调用 GetProcAddress 获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。
动态链接的优点:
1)不占用源程序代码段,节省空间。
2)使程序更容易更新。
3)减少物理页面的切入。
4)增加程序的可扩展性
动态链接的缺点:
1) 性能损失
2)兼容性问题
【C++】调用动态链接库的方法.