在MFC的对话框的应用程序中,用程序在内存中生成了一个 近20M左右的字符串,如何将字符串存储到 IStream 变量中?
字符串变量:CString  my_str ;  //20M左右
          IStream *myStream;

解决方案 »

  1.   

    CString s;
    IStream* ps; 
     
    CComBSTR cbs((LPCSTR)s); 
    cbs.WriteToStream(ps); 
     
    为什么会出错呢?
      

  2.   

    IStream* ps; 这里没有分配内存, 所以出错,试试这样
    IStream* istream;
    HGLOBAL m_hGlobal = GlobalAlloc(GPTR, strLen);//分配内存
    VOID* global_addr = GlobalLock(m_hGlobal);
    memcpy(global_addr, yourStr, strLen);
    CreateStreamOnHGlobal(m_hGlobal, true, &istream );
      

  3.   

    HGLOBAL m_hGlobal = GlobalAlloc(GPTR, strLen);//分配内存大概有 20M,分配内存出错.也许分段写入比较合适.
    如何分段写入呢?