在DLL中封装了MFC,如在MyOpenFun函数中
extern "C" __declspec(dllexport) int __stdcall MyOpenFun(HWND hApp)
{
  CMyDialog test;  AFX_MANAGE_STATE(AfxGetStaticModuleState());
  test.DoModal();
}然后建立dialog的类,在点确定时响应IDOK消息,但是会出现内存错误:
access violation at address 0844cc76 in module "MyDll.dll".write of address FFFFFDF4.(很奇怪,使用VC进行调试时,不会出现内存错误,可以正常执行。可是不使用VC调试,而是直接运行
时,就会出现内存错误。使用ollydbg调试时会在GetDlgItemText(IDC_EDIT_FZ,m_sEdit_FZ)上发生内存错误,
并且将GetDlgItemText(IDC_EDIT_FZ,m_sEdit_FZ)给注释后,就不会出现内存错误。)在GetDlgItemText函数中响应IDOK消息
void CMyDialog::OnOK() 
{
// TODO: Add extra validation here          //IDC_EDIT_FZ是edit控件的id,m_sEdit_FZ是edit控件的对应的类成员变量,为CString类型
GetDlgItemText(IDC_EDIT_FZ,m_sEdit_FZ); int i = m_sEdit_FZ.GetLength(); //memcpy(stMyData.FFilterStr,sFilterStr,i+1);
memcpy(stMyData.FFilterStr, m_sEdit_FZ.GetBuffer(i), i); CDialog::OnOK();
}请教各位,为什么会出现错误,如果不使用GetDlgItemText(IDC_EDIT_FZ,m_sEdit_FZ);函数得到Edit
控件的内容,就可以使用MFC,而仅仅在GetDlgItemText()函数中出错,请帮忙解决,谢谢!