AfxEnableControlContainer();

AfxOleInit();//初始化COM库 //以下是连接access2003数据库
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=8;///设置超时时间为8秒
m_pConnection->PutCursorLocation(adUseClient);
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\yandu.mdb;","","",adModeUnknown);
}
} catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
::MessageBox(NULL,temp,"提示信息",NULL);///////////////////标记1////////////////
return false;
}程序跑到“标记1”时候提示  
这个程序不是我写的 不太明白什么意思 和怎么解决这个问题让程序能继续跑下去错误信息是:连接数据库错误信息:class not registered

解决方案 »

  1.   

    这个程序不是我写的 不太明白什么意思 和怎么解决这个问题让程序能继续跑下去
    你MessageBox下面不是写的return false;了吗?出错直接return返回是对的,还有继续往下执行的必要吗?
    如果一定要往下执行,去掉你的return false;即可~
      

  2.   

    在最开始加上CoInitialize(NULL);
    程序退出时加上CoUninitialize( );
      

  3.   

    AfxOleInit相当于CoInitialize...
    这个错误貌似在说ado没有注册...看看注册表HKCR下有没有ADODB.Connection项
      

  4.   

    加异常捕获看是什么错误
    try
    {
    //你的ADO代码
    }
    catch (_com_error& e)
    {
    AfxMessageBox(e.Description());
    }
    HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
    if (FAILED(hr))
    {
    _com_error e(hr);
    AfxMessageBox(e.ErrorMessage());
    return;
    }