隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易只要将导入函数关鍵字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了。下面的例子通过隐式链接调用MyDll.dll库中的Min函数首先生成一个项目为TestDll,在DllTest.h、DllTest.cpp文件中分别輸入如下代码:
显式链接是应用程序在执行过程中随时可以加载DLL文件也可以随时卸载DLL文件,这是隐式链接所无法作到的所以显式鏈接具有更好的灵活性,对于解释性语言更为合适不过实现显式链接要麻烦一些。在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来动态链接库的文件名即是上述两个函数的参数,此后再用GetProcAddress()获取想要引入的函数自此,你就可以象使用如同在应用程序自定義的函数一样来调用此引入函数了在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库下面是通过显式链接调用DLL中的Max函数的例子。
在上例中使用类型定义关键字typedef定义指向和DLL中相同的函数原型指针,然后通过LoadLibray()将DLL加载到当前的应用程序中并返回当前DLL文件的句柄然後通过GetProcAddress()函数获取导入到应用程序中的函数指针,函数调用完毕后使用FreeLibrary()卸载DLL文件。在编译程序之前首先要将DLL文件拷贝到工程所在的目录戓Windows系统目录下。
MAKEINTRESOURCE(2))(函数Min()在DLL中的顺序号是2)这样调用DLL中的函数速度很快,但是要记住函数的使用序号否则会发生错误。
隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易只要将导入函数关鍵字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了。下面的例子通过隐式链接调用MyDll.dll库中的Min函数首先生成一个项目为TestDll,在DllTest.h、DllTest.cpp文件中分别輸入如下代码:
显式链接是应用程序在执行过程中随时可以加载DLL文件也可以随时卸载DLL文件,这是隐式链接所无法作到的所以显式鏈接具有更好的灵活性,对于解释性语言更为合适不过实现显式链接要麻烦一些。在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来动态链接库的文件名即是上述两个函数的参数,此后再用GetProcAddress()获取想要引入的函数自此,你就可以象使用如同在应用程序自定義的函数一样来调用此引入函数了在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库下面是通过显式链接调用DLL中的Max函数的例子。
在上例中使用类型定义关键字typedef定义指向和DLL中相同的函数原型指针,然后通过LoadLibray()将DLL加载到当前的应用程序中并返回当前DLL文件的句柄然後通过GetProcAddress()函数获取导入到应用程序中的函数指针,函数调用完毕后使用FreeLibrary()卸载DLL文件。在编译程序之前首先要将DLL文件拷贝到工程所在的目录戓Windows系统目录下。
MAKEINTRESOURCE(2))(函数Min()在DLL中的顺序号是2)这样调用DLL中的函数速度很快,但是要记住函数的使用序号否则会发生错误。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。