[问题点数:20分,结帖人lanjingpao]　一键查看最优答案　确认一键查看最优答案?　本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!　取消　本版专家分:0　结帖率　100%　是在MFC下写的程序　1,已经加引入　#import　"msado15.dll"　no_namespace　rename　("EOF","adoEOF")　2,在CNGWebUIServerApp::InitInstance()加AfxOleInit();　我是将连接数据库的操作写成一个类的方法,如果是在CNGWebUIServerDlg类调用该方法就没有问题。　如果在其他类调用的话,就会　CreateInstance(_uuidof(Connection))　创建失败,老是找不出为什么,知道的大虾帮下忙啊。谢了　本版专家分:13　资源还没有释放掉。　一开始时就调用了CreateInstance(_uuidof(Connection))　,你没有释放掉,再创建时它还存在,所以出错。　AfxOleInit();　最好要在你写的那个类时就要初始化COM的了。　用完的话就立刻释放,以便第而次调用。　CoUninitialize();　最好就用智能指针写一个类　这是我初始化和释放的函数　_ConnectionPtr　m_pConnection;//指向Connection对象的指针　_RecordsetPtr　m_pRecordset;//....Recordset.void　CAccessConn::OnInitAccessConn()　{　CoInitialize(NULL);　try　{　m_pConnection.CreateInstance("ADODB.Connection");　m_pConnection->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data　Source=db11.mdb";　m_pConnection->Open(adModeUnknown);　}　catch(_com_error　e)　{　AfxMessageBox(e.Description());　}　void　CAccessConn::CutConn()　{　if(m_pRecordset!=NULL)　m_pRecordset->Close();　m_pConnection->Close();　CoUninitialize();　}　【数据库-SQL　Server】CreateInstance(_T("ADODB.Connection"))创建实例失败　CreateInstance(_T("ADODB.Connection"))创建实例失败CreateInstance("ADODB.Connection")创建实例失败1、确认是否安装MDAC28 2、编译使用的“C:\Program　Files\Common　Files\System\ado\msado15.dll”与 运行环境下的“C:\Program　Files\Comm　本版专家分:0　用这种方法写了一下,发现那个问题还是存在。　程序进入m_pConnection.CreateInstance("ADODB.Connection")后,单步调试　Interface*　m_pInterface;　//　Releases　only　if　the　interface　is　not　null.　//　The　interface　is　not　set　to　NULL.　void　_Release()　throw()　{　if　(m_pInterface　!=　NULL)　{　//就在这出错了　m_pInterface->Release(错误提示是Unhandled　exception　in　:　0xC0000005　:Access　Violation;　我的com组件突然　CreateInstance　失败。以前是好使的　代码如下:　#import　"bin/RSKCom.dll"　no_namespace　IRSKInterfacePtr　m_hCOMPtr;　CoInitialize(NULL);　HRESULT　本版专家分:24972　红花　2011年10月VC/MFC大版内专家分月排行榜第一　>>这种方法写了一下,发现那个问题还是存在。　>>程序进入m_pConnection.CreateInstance("ADODB.Connection")后,单步调试　>>Interface*　m_pInterface;　//　Releases　only　if　the　interface　is　not　null.　//　The　interface　is　not　set　to　NULL.　void　_Release()　throw()　{　if　(m_pInterface　!=　NULL)　{　//就在这出错了　m_pInterface->Release(错误提示是Unhandled　exception　in　:　0xC0000005　:Access　Violation;　程序关闭时要关闭连接:　比如你可以在　int　CUmsApp::ExitInstance(TODO:　Add　your　specialized　code　here　and/or　call　the　base　class　if　(　pConn->State　)　{　pConn->Close();　pConn　=　NULL;　}　return　CWinApp::ExitInstance();　}　创建组件的四种方法　创建组件的三种方法:1.　一般组件是使用CoCreateInstance函数,通过类厂来创建。2.　通过智能指针中的CreateInstance创建组件,它其实是间接调用CoCreateInstance。是对CoCreateInstance调用的包装。3.　也可以使用CComObject中的CreateInstance直接创建组件,不通过CoCreateInstance。4.　直接　本版专家分:0　关闭连接,我在类中就写了的。是第一次开始运行单步调试时就出错了。应该不是未关闭连接导致的。　我是由网络端接收到命令时调用的这个类,不知道是不是句柄什么有问题。该类我单独试过是可以用的。　关于COM组件QueryInterface返回E_NOINTERFACE的问题　在程序中,C++工程调用了一个C#写的COM组件,但是在CreateInstance创建一个对象的时候总是没有创建成功。　错误是在CreateInstance中,首先调用了CoCreateInstan　本版专家分:1369　首先你自己看下错误码。另外,你看看两个地方调用的是否同一个线程。　主要看下出错的地方是否没有初始化com　本版专家分:26　应该是你原来的连接没有关掉吧　C++　CreateInstance("ADODB.Connection");创建接口失败的解决方法　数据库对象mssql2005sp3专业版:一般数据引用该路径文件#import　"c:\\program　files\\common　files\\system\\ado\\msado15.dll"　no_namespace　rename("EOF",　"adoEOF")。但是,我昨天在一台电脑上就是不行,始终报错误:HRESULT　hr　=　pConnection.CreateInst...　本版专家分:10862　创建ADO对象要调用　CoInitialize　而不是AfxOleInit　CreateInstance老是返回E_NOINTERFACE　先贴部分代码:　if　(!AfxOleInit())　{　AfxMessageBox(IDP_OLE_INIT_FAILED);　return　FALSE;　}　#ifdef　_DEBUG　_Conn　本版专家分:3053　用在多线程里?　CreateInstance(__uuidof(Connection))执行失败的解决办法　遇到的实际问题:在MFC中,使用ADO来实现数据库操作时,经调试发现,在执行if(pConnection.CreateInstance(__uuidof(Connection))　!=　S_OK)时成功,即:pConnection.CreateInstance(__uuidof(Connection))失败。 出错的环境:研发机:win10客户机:win7和xp　本版专家分:3053　每个线程都要初始化com环境　本版专家分:0　引用　9　楼saiyaman5　的回复:　每个线程都要初始化com环境　楼上正解,多谢!　匿名用户不能发表回复!　初次学习XML文件读写,苦于找不到可用的例子,研究了几天后略懂一二,把几个我做测试用的两个小例子公布出来,并按照自己的理解添加上了注释,抛砖引玉共同学习进步。在高手看来这样的例子实在太简单,而且可能还有纰漏,见谅见谅,敬请指正。以下程序在VC6.0上编译可以运行。备注:但是在vs2010中是不能运行的,出现过这样的几个错误:C2872(注意是应为命名空间的问题,同名函数冲突污染的问题),C　我如下连接access数据库　HRESULT　hr;　try　{　CoInitialize(NULL);　hr　=　m_pConnection.CreateInstance("ADODB.Connec　vc2008　ADODB.Connection创建失败　win7系统release编译后运行正常,数据库操作也正常,但是到了到2003和xp系统下运行,就“ADODB.Connection创建失败”,　现象:同一个程序,在有的机器上成功,有的机器上失败。原因:编译本程序所在　int　OpenAccess(CString　strMDbPath)　{　int　nRet　=　Success;　CString　strConnection;　strConnection.Format　下面是在微软MSDN官网查到的类似问题的答疑,具体网址如下http://social.msdn.microsoft.com/Forums/vstudio/en-US/701d05aa-e8d2-4f46-8cc1-448a8d35bd37/windows-7-sp1-ado-compatibility内容:Windows 7 SP1 ADO Compatibility Visua　使用VS2005创建了一个MFC　Regular　Dll(Use　MFC　in　a　Static　Library),在stdafx.h中加入:　#pragma　warning(disable:4146　void　TESTHR(HRESULT　x)　{　if　FAILED(x)　_com_issue_error(x);　};　void　CCUToolDlg::OnOK()　{　//　TODO:　Add　创建:　m_pConnection.CreateInstance(__uuidof(Connection));　连接代码:　CString　ConnectionString　=　_T("Provide　::CoInitialize(NULL);　HRESULT　hr;　_ConnectionPtr　m_pConnection;　try　{　hr=m_pConnection.CreateInstanc　初学ADO开发,输入书上一个例子。　执行到hr　=　m_pConnection.CreateInstance　(__uuidof　(Connection));时总是失败。程序转向语句AfxMessag　我在我的程序里用到下面代码　CoInitialize(NULL);　_CommandPtr　pCmd　=　NULL;　pCmd.CreateInstance(__uuidof(Command));　但　先用CoGetClassObject新建类库,返回正确,再用CreateInstance创建接口,返回错误,经检查,不是CLASS_E_NOAGGREGATION和E_NOINTERFACE的错误,怎COM组件的编写 　本文提供一个完全用C++实现的进程内(DLL)COM服务器,不要ATL或MFC提供任何支持。用这种方式编写COM对象可以让你深入地洞察到COM处　理进程内服务器的方法以及COM是如何创建类工厂的。利用本文提供的这个简单框架你可以实现很基本的COM组件,如外壳扩展(Shell　Extensions)等。如果你在使用过程中发现了任何问题,请将它反馈到vckb　第一次使用com组件,非常菜,我目前现在有.tlb文件和.h文件,import　".tlb"之后,调用CoCreateInstance老是返回　E_NOINTERFACE,我换了好几个IID都不对,请　单独定义了一个类,用于数据库连接。　可在CreateInstance(__uuidof(Connection))时,总是出错,返回值:E_NOINTERFACE　自已一步步跟踪,网上查找都没有结果……　AfxOleInit();　CoInitialize(NULL);　try　{　HRESULT　hr　=　pConnection.CreateInstance(__uuidof(Connection)　evc3.0,adoce3.1,SQLCE200,wince3.0环境下.　为什么mode属性只能设置adModeUnknow,设置其他的就失败?　open数据库后就是独占方式打开了,我现在需要不以独　大家好有一个问题请教大家:　CoInitialize(NULL);　m_pConnection.CreateInstance(__uuidof(_Connection));　操作数据库等其他操作封装成　想求个demo,可编译可运行的,要能在VC2010运行的。　要建立个　win32　控制台项目,以main　作为入口,在里面调用　.NET　的CLRCreateInstance　函数,在CLRCr　年关将至,事情也少了许多,虽然接触过些三层结构的项目,但是一直没有自己从头到尾仔细写过,很多东西还是模模糊糊,这次花费了几天时间从头到尾的写出了这样一个小Demo,在这将流程记录下来,为我以后可以更方便的复习,也希望能帮助到一些朋友。