我现在再做一个小东西,主要是调用别人的一个扩展服务动态连接库,该库主要包含一个存储基于文件系统的GIS图层对象的一些信息,其中数据库采用SQL Server2000,传递数据库连接参数即可进行数据对象相关参数的初始化,但是,这样的过程在文档/视结构中使用没有问题(其中在Doc类构造函数中建立数据库连接并同时进行对象初始化,然后在OnDraw()中调用改对象进行绘图),同样的过程,我拿到一个基于对话框的程序中则出现错误,编译正确,但是运行跟踪后发现在Dlg构造函数中初始化该对象后(一切正常),在Dlg.Create()之前就报告:
First-chance exception in test.exe: 0xC0000005: Access Violation.
First-chance exception in test.exe (NTDLL.DLL): 0xC0000005: Access Violation.
另外,我对程序编译输出exe文件进行了重新定向,DLL编译结果完全满足运行要求。不知道那位大侠能够指点迷精呢?

解决方案 »

  1.   

    please paste some code.
    u place the AfxOleInit(); before Dlg.Create()?
      

  2.   

    CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/): CDialog(CTestDlg::IDD, pParent) 
    {
             m_layer = new CLayer();//Clayer CTestDlg::m_layer
             m_gmDbiObject =  new CDBIObject("服务器名","数据库名","用户","密码");//CDBIObject CTestDlg::CDBIObject
    m_layer->InitLayer(m_gmDbiObject);
    }//其中Clayer为自定义图层,CDBIObject为自定义ADO数据连接服务
    CTestDlg::Create()
    {
    断点处(未执行)
    }
      

  3.   

    77FA0341   call        77F8F391
    77F8F391 CXX0013: Error: missing operator
      

  4.   

    I call AfxOleInit() in the end of CTestDlg::CTestDlg(),but change nothing.would u like to discuss it deeply?