用vc写?我用vb写过,和写app差不多,把一个独立的功能函数粘到dll工程中就可以了!

解决方案 »

  1.   

    首先,你要在stdafx.h中包含
    #import "c:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("ADOCust") rename("EOF","rsEOF")
    using namespace ADOCust;
    其中可能这个文件的目录不一样,你自己找吧第二,要在你的idl中包含 importlib("c:\Program Files\Common Files\System\ado\msado15.dll");
    这样你才能在idl地接口声明中使用一些_ConnectionPtr之类的智能指针对象第三,一个连接数据库的例子
            _bstr_t ConnectionString="连接字符串,具体你自己写"; HRESULT hr = GetObjectContext(&m_spObjectContext);
    m_Conn.CreateInstance(__uuidof(Connection));
    try
    {
    m_Conn->Open(ConnectionString,"","",NULL);
    }
    catch(_com_error &e)
    {
    _variant_t error(e.Description());
    return hr;
    }
        if (SUCCEEDED(hr))
           {
           //连接成功以后要做的工作
            }
    其他的其实就是对ado的一些对象,你可以自己找一本ado的书来看看就行了
    上班了,下面的例子我下午或者晚上发给你看看
      

  2.   

    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++(到这里双击这个主题,你就可以选择你所想要的东西了)
      

  3.   

    谢谢,
     Everyday() 说的内容我也知道,可是在用atl com具体写的时候,总是出错
    不清楚错在那里,
    最好能给我一个具体的用ado连接数据库操作的例子哎,刚接触vc就做这个,而且有时间规定的,真惨啊。。
      

  4.   

    我给的就是一个具体的例子啊,在接口实现里面直接用就可以啦,我编的是MTS的东西,是放在activate里面的,如果你出错,把出错信息拿出来,我看看吧,我现在就是专门在做这些东西的,大家互相帮助吧  ^_^
      

  5.   

    数据库的初始化(ado)在哪里呢?
    AfxEnableControlContainer();
    AfxOleInit();
    m_pConnection.CreateInstance("ADODB.Connection");
    不会在是在每个函数里都初始化吧