#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;
}
office xp C:\Program Files\Common Files\System\ado\msado15.dll 也是存在的同样的程序在其他机器上运行可以的 , 在我自己的机器上就出错。
单步调试 确定是在 CreateInstance 返回负值
换为 Coinitialize(NULL)试试!如果不行,在别人可以运行的机子上copy一个msado15.dll过来看看