#import "c:\Program Files\Common Files\System\Ado\msado15.dll" no_namespace rename("EOF","adoEOF")
AfxOleInit(); 返回 1 应该是正确的// public functions
inline void TESTHR(HRESULT x) { if FAILED(x) _com_issue_error(x); }; try
{
//TESTHR( pcon.CreateInstance("ADODB.Connection") );
TESTHR( pcon.CreateInstance(__uuidof(Connection)));
                  //上边的两行无论用哪行都会出错,“没有注册类别”  btw 请问这两行有什么区别 ? 
pcon->ConnectionTimeout = 8;
pcon->Open( CONNECTSTRING, "", "", adModeUnknown );
}
catch( _com_error e )
{
AfxMessageBox("连接数据库错误");
return FALSE;
}

解决方案 »

  1.   

    补充说明 我的操作系统windows xp home edition
     
    office xp C:\Program Files\Common Files\System\ado\msado15.dll 也是存在的同样的程序在其他机器上运行可以的 , 在我自己的机器上就出错。
    单步调试 确定是在 CreateInstance 返回负值
      

  2.   

    AfxoleInit()
    换为 Coinitialize(NULL)试试!如果不行,在别人可以运行的机子上copy一个msado15.dll过来看看
      

  3.   

    我的是xp  考了其他人 xp 或者 2k上的文件  发现马上就被还原了。我试试用其他文件名
      

  4.   

    thx  的确好了以前都好用的  不知道什么时候不行了。  什么情况下会这样子呢 ?