ADO把哪个指针让它等NULL也许可以解决,反正是内存分配的问题,是否没有用
CoUninitialize();

解决方案 »

  1.   

    是啊,我没有用到CoUninitialize(),
    但我是用AfxOleInit() 来初始化的啊,一定要用吗?
      

  2.   

    这问题弄的我好头疼啊,怎么以前从来没有遇上这种错误,
    我的OS是win2K Server + Sp2, VC6.0 + Sp5.
      

  3.   

    会在程序中出现是什么意思?MessageBox?
      

  4.   

    那个不是MessageBox,只是BoundsChecker会提示你程序出错,
    但不集成BoundsChecker则没有。
    但关键是在程序退出时,有的时候会出现
    Unhandled exception in mytest.exe : 0xc0000005: Access Violation.
      

  5.   

    源程序在
    http://alphagx.51.net/download/Test.rar
    谢谢各位老大了!!!!
      

  6.   

    是否在CXXWinapp类中放置ADO对象
    若是,注意一定要在释放ADO对象之后CoUnintialize()
      

  7.   

    如果用到了CoInitialize ,就需要用上面所说的CoUnintialize,
    但我没有用到啊,我只是用了AfxOleInit()
      

  8.   


    我的判断:
    据症状看,好像是你把ADO的什么指针你自己来释放了,然后等程序结束时,ADO要来释放该对象,结果那个指针却是指向无效的内存地址,于是就会出现上述错误。我的建议:
    请你仔细查查看,你是否创建了ADO的智能指针,然后自己调用它的Release方法把它给释放了?
      

  9.   

    程序里面是用到了ADO的智能指针,可我却没有调用它的Release方法,
    我都是调用它的Close方法
      

  10.   

    我遇到了同样的问题,在2000下,它并不报错,但在ME和98下报错。后来我发现是没有释放自己建的指针。在程序里建的_ConnectPtr,_RecordsetPtr,_CommandPtr都要调用Release()函数来释放。如下:
    RecordsetPtr->Close();
    RecordsetPtr.Release();
    ConnectPtr->Close();
    ConnectPtr.Release();