一个查询窗口类, 原先是直接写在exe工程中的,现在为了更新方便将整个对话框类转移到单独的动态库中实现(MFC扩展Dll), 现在发现所有的DAO操作都会出现异常CDaoException, 并且异常捕获代码会出现内存访问错误: 如: CString strDb = AppPathString(str);
CDaoDatabase db; try
{
db.Open(strDb);
}
catch (CDaoException *e) // 统计数据库不存在, 创建新的数据库文件
{
//AfxMessageBox(e->m_pErrorInfo->m_strDescription, MB_OK);
DeleteFile(strDb); CreateStatDatabase(strDb, m_TestMode);

db.Open(strDb);
e->Delete();
}AfxMessageBox一句无法打印出异常信息,报内存访问错误.
若数据库文件strDb存在,那么本不应该出现异常,但运行结果不变,还是会出现CDaoException异常创建数据库时也是同样: try
{
CDaoDatabase db;
db.Create(strFileName);        // 此处出现异常          }
          catch (CDaoException *e)
          {
                  ...
           }以上这些Dao操作代码原本在exe工程中已经使用很久了,是否在mfc扩展dll中使用dao有特殊之处?在exe工程中,我是通过AfxGetModuleState()->m_dwVersion = 0x0601; 来使用dao3.6版本