本帖最后由 VisualEleven 于 2012-06-26 14:47:29 编辑

解决方案 »

  1.   

    CArchive(
       CFile* pFile,
       UINT nMode,
       int nBufSize = 4096,
       void* lpBuf = NULL 
    );
    构造函数
      

  2.   

    构造函数是这样的啊。结果是显示不能从“CSocSvrDlg *const”转换为"const CArchive &".原因可能是无构造函数接受源类型。我想知道怎么重载个构造函数能使题目中的语句编译通过。我是个菜鸟,不会写?this是一个对话框实例
      

  3.   

    CArchive与对话框没有关系,不要:(this);
    m_pCArchive=new CArchive;
    然后赋值:
      

  4.   

    你就打开一个文件得到: CFile* pFile, char *pBuf = new char[520];
    Archive *m_pCArchive = new CArchive(pFile,CArchive::load,512,pBuf);
      

  5.   

    我试试看啊。还有文件不是已经在CArchive初始化的时候打开了吗?还要重新打开么?
      

  6.   

    我的程序运行到这一句就挂了,显示异常:0x0000005:读取位置0xcdcdcde5时发生访问冲突。
    _AFX_INLINE BOOL CArchive::IsStoring() const
    {return (m_nMode & CArchive:load)==0;}
      

  7.   

    IsStoring() 是存回文件,
    你还没读入文件。
    ‘还有文件不是已经在CArchive初始化的时候打开了吗’你不是构造一个新的了吗?
    如果在串行化中(Serialization)中是doc给你初始化好了。
      

  8.   

    没构造新的。用的还是MFC中自己初始化的。
      

  9.   

    Archive *m_pCArchive = new CArchive(pFile,CArchive::load,512,pBuf);这个new不就是新的?