1.先编写DLL(add.DLL)
extern "C" _declspec(dllexport) int abc(int a){a=3234;return a;}
2.然后编写MFC对话框程序
在事件里写入:
HINSTANCE hInst;hInst=LoadLibrary("z1.DLL");//加载链接库typedef int (*ADDPROC)(int a); ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"abc"); if(!Add){ MessageBox(" 获取函数地址失败" ); return;}
CString str;str.Format("%d",Add(0));MessageBox(str);
FreeLibrary(hInst);
别忘了把add.DLL文件放到MFC程序里!
--------------------------------------------------
DLL:
extern "C" _declspec(dllexport) int jincheng() { AFX_MANAGE_STATE(AfxGetStaticModuleState());int a=1;return a;}
DLLTEST:
typedef int (WINAPI *TESTDLL)(); HINSTANCE hmod; hmod=::LoadLibrary("XXX.dll"); if(hmod==NULL) { AfxMessageBox("Fail"); } TESTDLL lpproc; lpproc=(TESTDLL)GetProcAddress(hmod,"jincheng"); if(lpproc!=(TESTDLL)NULL) m_jincheng=(*lpproc)();
UpdateData(false); FreeLibrary(hmod);
---------------------------------------------------------------------
返回一个字符串 DLL:
extern "C" _declspec(dllexport) char * jincheng() { AFX_MANAGE_STATE(AfxGetStaticModuleState());char *Str;Str="12345678";return Str; }
调用:
typedef char * (WINAPI *TESTDLL)(); HINSTANCE hmod; hmod=::LoadLibrary("../../77/Release/77.dll"); if(hmod==NULL) { AfxMessageBox("Fail"); } TESTDLL lpproc; lpproc=(TESTDLL)GetProcAddress(hmod,"jincheng"); if(lpproc!=(TESTDLL)NULL) { static char *Str; Str=(*lpproc)(); if(Str!=NULL) m_name=Str; else m_name=1;}else{ MessageBox("获取函数失败");}UpdateData(false); FreeLibrary(hmod);