隐式调用
隐式调用需要dll文件、lib文件和头文件
在程序开始执行时就将DLL文件加载到应用程序当中。
#include"newdll.h" #pragma comment(lib, "newdll.lib")
或者在项目->属性->链接器->输入中添加附加依赖项 dllDemo.lib。
编译运行,该DLL会直接执行其中的可执行代码,可以直接调用在头文件里声明过的函数或过程
显式调用
显式调用仅需要dll文件,在需要使用dll中的函数时,通过LoadLibrary()和FindProcAdress()这两个API调用。
实质是地址调用,LoadLibrary和GetProcAddress也可以知道地址的情况下显式调用。
typedef HMODULE(WINAPI*MyLoadLibraryA)( __in LPCSTR lpLibFileName ); typedef FARPROC (WINAPI *MyGetProcAddress)( _In_ HMODULE hModule, _In_ LPCSTR lpProcName ); typedef int (WINAPI *MyMessageBoxA)( __in_opt HWND hWnd, __in_opt LPCSTR lpText, __in_opt LPCSTR lpCaption,