我按 http://www.7880.com/Info/Article-7c8b3d60.html
此方法在新建的MFC工程中添加创建access数据库的代码可以编译运行;
但是按照此上步骤在我原先做的MFC程序中添加创建数据库的代码,编译通不过,代码如下:
    //使用ADOX::CatalogPtr来创建mdb文件:
HRESULT hr = S_OK;
CString strcnn(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source = d:\\test5.mdb"));

try
{
ADOX::_CatalogPtr m_pCatalog = NULL;
hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));

if(FAILED(hr))
{
_com_issue_error(hr);
}
else
{
m_pCatalog->Create(_bstr_t(strcnn)); //Create MDB
}
}  
catch(_com_error &e)
{
// Notify the user of errors if any.
AfxMessageBox(_T("此库已存在"));
}
错误提示如下:
error C2653: 'ADOX' : is not a class or namespace name
error C2065: '_CatalogPtr' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'm_pCatalog'
......
很纠结,差了好多资料没有找到解决的办法,那位大哥帮忙看一下是哪里错了?步骤上的我都做了,只是在已有的程序上添加这些代码又会报错...焦急等待啊!!!

解决方案 »

  1.   

    这个ADOX::用法好像没用过,ADO例子挺多的,网上找个看看。
      

  2.   

    #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")
      

  3.   

    #import "c:/program files/common files/system/ado/msadox.dll" no_namespace rename("EOF","adoEOF")
      

  4.   

     #import   "c:\Program   Files\Common   Files\system\ado\msadox.dll"   no_namespace   
      #import   "c:\Program   Files\Common   Files\system\ado\msado20.tlb"