引言:DLL有两种:动态库和静态库,动态库是在运行时动态加载,静态库时静态加载工程。
DLL动态加载方式:
tstring strDLLpath=C:\\bin\\loaclpath\\DataSdk\\+_T("libsdk.dll");
if(!PathFileExists(strDLLPath.c_str()))
{
OutputDebugString(_T("YTTJ2:加载DLL失败"));
return flase;
}
HINSTANCE m_hModule = ::LoadLibrary(strDLLPath.c_str());//获取一个句柄
获取到句柄后可以通过GetProcAddress来获取到Dll中指定函数的函数指针,用法可参考:
https://blog.youkuaiyun.com/yangpan011/article/details/51849177
(type m) funcCreate=(type m)::GetProcAddress(m_hModule, "函数名");
例如:m_funCreateDataSdkNew = (CreateDataSdkNew)::GetProcAddress(m_hModule, "SdkOutfunc");获取到CreateNDDataSdkNew的函数指针。
静态加载: