msdn library-......../Platform SDK/Data Services/Microsoft Data Access Components(MDAC) SDK/Microsoft ActiveX Data Objects (ADO)/ADO Programmer's Guide/Section V:Appendixes/Appendix C:Programming with ADO/Using ADO with Microsoft Visual C++(到这里双击这个主题,你就可以选择你所想要的东西了)其实很多东西,还是MSDN里面最全,自己看吧
把这两个位置换一下,我想是这个问题!!!
#include <stdio.h>#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")int main(int argc, char* argv[])
{
HRESULT hr;
CoInitialize(0);
// if (!AfxOleInit())
// {
// printf("ole 初始化??");
// return FALSE;
// } try {
_ConnectionPtr m_pConnection;
hr = m_pConnection.CreateInstance
("ADODB.Connection");///?建Connection?象
if(SUCCEEDED(hr)) {
MessageBox(NULL, "ok", "", MB_OK);
} else {
CString str;
str.Format("hr=0x%08x", hr);
MessageBox(NULL, str, "", MB_OK);
}
}
catch(_com_error e)///捕捉?常
{
printf("?接数据?失?!\r\n??信息:%s",e.ErrorMessage());///?示??信息
} CoUninitialize();
return 0;
}1)AfxOleInit内部可能未调用CoInitialize;直接使用CoInitialize。
2)注意m_pConnection的声明范围问题--COM库的初始化与释放
另一做法:
CoInitialize(0);
{
_ConnectionPtr m_pConnection;
...
}
CoUninitialize();
ConInitianlize(NULL);
应该就可以了
加上就对了
结贴给分