隐式链接
使用时
-头文件
#include "..\DLLTest\MyDll.h"//dll头文件所在路径
#pragma comment(lib,"..\\debug\\DLLTest.lib")//lib所在路径
//第1种.用这句代码,让编译器查看已获得的lib文件,同时让它顺便查看该目录的DLL头文件。
//第2种.把自己写的DLL放到新项目相同的路径中。一般选择第一种
-调用语句
//直接调用DLL中定义的函数。比如我定义的 void TestDll(int);
TestDll(1);
显式链接
使用时
-头文件
#include <Windows.h>
-调用语句
//在头文件后main函数前定义:
typedef void (*Test)(int); //一定是在DLL中定义的相同格式
//在main函数中
Test _Test;
HINSTANCE hInstLib = LoadLibrary(_T("..\\debug\\DLLTest.dll")); //加载dll
//或者用LoadLibraryEx
if (hInstLib == NULL)
{
FreeLibrary(hInstLib); //释放动态链接库
}
_Test = (Test)GetProcAddress(hInstLib,"TestDll");//获取动态链接库中的函数地址
if (_Test==NULL)
{
FreeLibrary(hInstLib);
}
_Test(1); //调用
-LoadLibrary(PCTSTR pszDLLPathName);
-LoadLibraryEx(PCTSTR pszDLLPathName,
HANDLE hFile,
DWORD dwFlag);