已初始化过com库_ConnectionPtr m_pConnection;
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
//HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");在本机执行(系统win7 sp1  编译器vs2008 sp1,静态编译) OK,放到其它电脑上跑(xp),CreateInstance返回E_NOINTERFACE。
但是我在xp电脑上编译源代码,执行没问题,放到其它xp电脑上也跑得好好的。怀疑是不是win7 sp1的ado版本太高,跑到xp就执行不起来了。有没有人也遇到这个问题?求解决方案。

解决方案 »

  1.   

    xp是32bit造成的吧?
    编译时把项目属性设为32bit看。
      

  2.   

    可能是win7的问题,建议在xp虚拟机上编译
      

  3.   

    http://topic.csdn.net/u/20110314/09/ee56db06-9da6-4503-8f23-077bfbc9bc93.html
    http://topic.csdn.net/u/20110305/09/64d1a776-4bb2-44f7-9f83-d5ae4b1af325.html
      

  4.   

    去掉DEP和UAC再看看,你创建别的COM组建也不行吗?
      

  5.   

    ADO的一个更新导致Connection 的 IID不一致
    00000550-0000-0010-8000-00AA006D2EA4 与
    00001550-0000-0010-8000-00AA006D2EA4
    =======================
    有意思,是不是需要动态检查系统的ado版本,从而使用不同的IID?
      

  6.   

    http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/701d05aa-e8d2-4f46-8cc1-448a8d35bd37http://jiangshengvc.wordpress.com/2011/02/24/breaking-change-in-ado-update-kb983246-included-in-windows-7-service-pack-1/
    win7 sp1惹得祸。