在我在MFC扩展DLL中有如下代码:
#include "stdafx.h"
#include "ado.h"      
#include "AdoConnect.h"
extern "C" __declspec(dllexport)  void AccessConnect(CAdoConnection ConnObj,CString dbname)

    CAdoConnection TempConnObj;
TempConnObj=ConnObj;
CString strConnect ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+dbname;
TempConnObj.Disconnect();
if (!TempConnObj.Connect(LPCSTR(strConnect)))
{
AfxMessageBox("连接数据库失败!");
return ;
}
}调用调试中发现 参数ConnObj的值并没有传进来 CAdoConnection 是我在ADO.H中定义的类,而第二个参数dbname都能传进来,请问大家为什么?

解决方案 »

  1.   

    补充: 调用形式  
    AccessConnect(m_adoConnection1,"Citc.Mdb");
    protected:
    CAdoConnection  m_adoConnection1;
      

  2.   

    查一下你的CAdoConnection赋值操作函数。(operator =)再有就是有了CAdoConnection ConnObj,
    为什么还要CAdoConnection TempConnObj;
    TempConnObj=ConnObj;好象多余了。
      

  3.   

    而且这种对象在别的函数中也要用吧, 
    我觉得传引用更好些。
    void AccessConnect(CAdoConnection& ConnObj,CString dbname)
      

  4.   

    问题没有解决
    1。 我在CAdoConnection类中病没有 赋值操作函数。(operator =);
    2。 改成引用是更合理一些void AccessConnect(CAdoConnection& ConnObj,CString dbname)
    期待中
      

  5.   

    TO 大家  解决了   采用了dz_w(快乐之星)和 force_eagle(战鹰) 的建议用用指针传递参数;