VC++2010 有未经处理的异常: 0xC0000005: 读取位置 0xccccce38 时发生访问冲突

时间:2021-11-24 10:38:28
数据库初始化OnInitAdo()放在其他Cwnd类中的.cpp程序会发生访问冲突,而放在对话框类的.cpp程序中则正常运行。
VC++2010 有未经处理的异常: 0xC0000005: 读取位置 0xccccce38 时发生访问冲突

我调试发现: 
void Ado::OnInitAdo()
{  
    //初始化OLE/COM库环境  
    ::CoInitialize(NULL);  
_bstr_t strConnect;
    try    
    {   
        //´创建connection连接对象  
        m_pConnection.CreateInstance(__uuidof(Connection));   
        //设置连接字符串  
strConnect="Provider=SQLOLEDB; Server=local;"" Database=Test; uid=sa; pwd=123456;";
     m_pConnection->Open(strConnect,"","",NULL);//连接数据库  adModeUnknown
    }  
  在程序 m_pConnection.CreateInstance(__uuidof(Connection)); 发生异常   

数据库初始化放在Cwnd类中的.cpp程序时: m_pConnection指针值为:错误,无法计算表达式的值;

放在Cwnd类中的.cpp程序时_ConnectionPtr m_pConnection; 并没有执行初始化定义;
而放在dlg.c中,m_pConnection指针为0x0000;有初始化。

这是为什么??是什么原因???求大神指教

3 个解决方案

#1


VC++2010 有未经处理的异常: 0xC0000005: 读取位置 0xccccce38 时发生访问冲突在线等,救命啊

#2


点中断,看在断在哪儿了,从堆栈调用窗口里,找到自己的代码05崩溃,一般是空指针之类的错误引起的

#3


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

#1


VC++2010 有未经处理的异常: 0xC0000005: 读取位置 0xccccce38 时发生访问冲突在线等,救命啊

#2


点中断,看在断在哪儿了,从堆栈调用窗口里,找到自己的代码05崩溃,一般是空指针之类的错误引起的

#3


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。