要使用此方法必须知道DLL文件的函数名称以及参数类型。
假设在 PRO.DLL 中有函数如下:
long MenuExecute( char *, long , HWND , long , char *, long , void * );
要想在程序中调用需要调用以下函数:
HINSTANCE hPro= ::LoadLibrary("Pro.dll");
if(hPro == NULL)
{
return;
}
else
{
typedef long (*MENU_EXECUTE)( char *, long , HWND , long , char *, long , void * );
MENU_EXECUTE mebu = NULL;
mebu=(MENU_EXECUTE)::GetProcAddress(hPro, "MenuExecute");//MenuExecute 函数名字
if(mebu)
{
mebu(szMdbDir,
0L,
AfxGetApp()->m_pMainWnd->GetSafeHwnd(),
MENU_ID,
NULL,
0L,
NULL); //执行DLL中相应函数
}
::FreeLibrary(hPro);
}
最后不要忘记FreeLibrary
参考博客:http://blog.csdn.net/mannhello/article/details/5643047