我在XP上写了个ADO数据库程序,移到NT6。0上面出现了问题, 表现为, 程序退出以后, 还冒出个
非法地址错误,  仔细检查了一下, XP msado15.dll的版本为2.81.1117.0, 而NT的msado15.dll的版本为2.70.7713.0哪路神仙能指点一下吗, 我该怎么做? 才能把XP的程序移到NT上

解决方案 »

  1.   

    这个应该和ado没有关系吧。msado15.dll是静态加载到工程中的,又不是动态调用,和nt下的msado15.dll没有什么冲突吧。
      

  2.   

    ExitInstance()里加上下面类似的句子
    {
      if (g_pRst->State != adStateClosed)
      {
        g_pRst->Close();
      }
      g_pRst = NULL; //这个是必要的
      if (g_pConn->State != adStateClosed)
      {
        g_pConn->Close();
      }
      g_pConn = NULL;
      ::CoUninitialize();
      return CWinApp::ExitInstance();
    }
      

  3.   

    那为什么
    m_pCardIncomePtr->Close();  //记录集
    _pOtherIncomePtr->Close();  //记录集
    m_pConnectionPtr->Close();  //连接在XP没问题, 而在NT下报了错呢?数据库没有进行任何操作, 打开即进行Close, 一样出错
      

  4.   

    我的数据库是使用控制面板的数据源创建的, ACCESS类型, 版本4.X , 这个在NTH上有没有问题
      

  5.   

    应该是没有什么关系的如果你不放心,可以把XP msado15.dll的版本为2.81.1117.0
    这个文件拷到你的nt系统下,替换msado15.dll的版本为2.70.7713.0
    这个再尝试看一下,是否还是有错,
    记得要改回来哦!!
      

  6.   

    另外在关闭之前要记得判断就像iGray(i_冲锋陷阵)说得那样,
      

  7.   

    MDAC引擎?  是什么? oyljerry(【勇敢的心】 
    可不可以解释一下,
    我是第一次接触数据库