MFC扩展DLL中定义了这样一个函数:
long CMyAdd::Add(long n1, long n2) 
{
return n1 + n2;
}
将生成的MyAdd.ll拷贝到调用程序所在的目录下,调用函数的定义如下:
void CMyTestDlg::OnMyAdd() 
{
HINSTANCE hDll = LoadLibrary("MyAdd.dll");

if(NULL == hDll)
{
AfxMessageBox( "MFC扩展DLL动态加载失败" );
} if(NULL == hDll)
{
AfxMessageBox( _T("MFC扩展DLL动态加载失败" ));
}    typedef long (*Add)(long a, long b);
Add myadd;
myadd=(long(_cdecl * )(long,long))::GetProcAddress(hDll,"Add");
long c;
c = myadd(3,4);
CString sMsg;
sMsg.Format( _T("3+ 4 = %d"), c );
AfxMessageBox( sMsg );
FreeLibrary(hDll);}
编译通过,却不能执行,弹出可执行文件遇到问题不能执行的对话框,高手帮忙看看哪里错了。