我调试发现:
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
在线等,救命啊
#2
点中断,看在断在哪儿了,从堆栈调用窗口里,找到自己的代码05崩溃,一般是空指针之类的错误引起的
#3
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
#1
在线等,救命啊
#2
点中断,看在断在哪儿了,从堆栈调用窗口里,找到自己的代码05崩溃,一般是空指针之类的错误引起的
#3
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。