我再ADOClass类里定义了两个public类型的cnn和rs_ConnectionPtr m_pConnection;
_RecordsetPtr  m_pRecordset;我在另一个类中想使用这个cnn和rs应该怎么办那?定义成全局的?如何定义在哪定义?因为不能我每次我对数据库操作都连接数据库啊!!另外还有个设计的问题!
就是在窗口中菜单中有很多项,我想要每个功能都现显示在这个窗口上,怎么办那?

解决方案 »

  1.   

    我定义了两个全局变量:在StdAfx中_ConnectionPtr m_pConnection;
    _RecordsetPtr  m_pRecordset;在另一个类中include "stdAfx.h" 去做数据库操作,可是在build的时候出现:TestADODlg.obj : error LNK2005: "class _com_ptr_t<class _com_IIID<struct _Connection,&struct __s_GUID _GUID_00000550_0000_0010_8000_00aa006d2ea4> > m_pConnection" (?m_pConnection@@3V?$_com_ptr_t@V?$_com_IIID@U_Connection@@$1?_GUID_00000550_0000_0010
    _8000_00aa006d2ea4@@3U__s_GUID@@A@@@@A) already defined in Query1Dlg.obj
    TestADODlg.obj : error LNK2005: "class _com_ptr_t<class _com_IIID<struct _Recordset,&struct __s_GUID _GUID_00000556_0000_0010_8000_00aa006d2ea4> > m_pRecordset" (?m_pRecordset@@3V?$_com_ptr_t@V?$_com_IIID@U_Recordset@@$1?_GUID_00000556_0000_0010_800
    0_00aa006d2ea4@@3U__s_GUID@@A@@@@A) already defined in Query1Dlg.obj
    Debug/TestADO.exe : fatal error LNK1169: one or more multiply defined symbols found
    Error executing link.exe.应该是重复定义,可是我怎么解决那?用全局变量,就重复定义嘛?
      

  2.   

    定义在你的cxxxapp累的头文件里,调用的时候
    ((CXXXAPP*)AfxGetApp())->pConnection
    如果你想定义在stdafx.h中,需要加extern关键字。
    其实这是一个关于全局变量的问题。
      

  3.   

    在其他要使用的地方声明成如下:
    extern _ConnectionPtr m_pConnection;
    extern _RecordsetPtr  m_pRecordset;