if(FAILED(CoInitialize(NULL)))
{
strErr = _T("COM初始化失败");
AfxMessageBox(strErr);
}
HRESULT hr;
hr = _cnn.CreateInstance(__uuidof(Connection));
//hr = _cnn.CreateInstance(_T("ADODB.Connection"));
if(FAILED(hr))
{
hr = _cnn.CreateInstance(_T("ADODB.Connection"));
if (FAILED(hr))
{
strErr = _T("创建Connection实例失败");
AfxMessageBox(strErr);
return FALSE;
}
}
我两台电脑,都是安装的VS2005,编译和运行都没有任务问题,但如果把程序拷贝到其它的电脑,就会报错!
应该安装的,也都有安装,实在是找不到问题所在了!

解决方案 »

  1.   

    HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");
    if (FAILED(hr))
    {
    _com_error e(hr);
    AfxMessageBox(e.ErrorMessage());
    return;
    }用这个代码看看是什么错误。
      

  2.   

    ADO版本不对,换成开发机的ADO,在用regsvr32注册下。
      

  3.   

    这个问题就是ADO控件的问题,一,ADO控件有没有注册  二、版本对不对
    对于第一个问题,你将C:\Program Files\Common Files\System\ado下的MSADO15。DLL注册一下,regsvr32应该会用吧。
    如果注册了还不行,那就是版本的问题了,你把你机子上的MSADO15。DLL复制到C:\Program Files\Common Files\System\ado目录下,覆盖原来的版本,然后注册,应该就没有问题了。
      

  4.   

    第二点说的不太清楚,补充一下,是将你机子上的MSADO15。DLL复制到目标机上的:\Program Files\Common Files\System\ado目录下覆盖原来的版本,然后注册
      

  5.   

    在目标电脑安装补丁KB983246,CSDN资源里有下载