我用csafearray获得了一组字符串,要用afxmessagebox()显示这些字符串,但afxmessagebox()中不能显示csafearray类型的数据,就需要将csafearray转为cstring数组,请教该如何将csafearray中的一个个元素转化为一个个的cstring

解决方案 »

  1.   

    char buffer[1000]
    memset(buffer,csafearray,1000);
    试一试。
      

  2.   

    不行啊,朋友,memset(buffer,csafearray,1000)第二个参数不匹配啊
      

  3.   

    你的数组成员类型是什么?一般是BSTR的吧。用GetElement获得成员比如:
    long index = 0;
    COleVariant vData;
    array.GetElement(&index, vData);
    AfxMessageBox(CString(vData));
      

  4.   

    char buffer[1000];
    CSafeArray array;
    memcpy(buffer,array,1000);
    试一试。
      

  5.   

    memcpy(buffer,&array,1000);
    都是地址指针
      

  6.   

    谢谢大家热心的指导,不过以上的办法我照着做了,都失败了,我是这样的:
           CString* str=new CString[10];
           for(long index=0;index<10;index++)
    {
                safearray.GetElement(&index,str+index);
                AfxMessageBox(str[index]);          }
    我用cstring数组来接收安全数组中的每一个元素,再用afxmessagebox()显示,但显示出来的是奇怪的字符,这与安全数组中的每一个元素不一致啊,安全数组的每个元素都是bstr类型的字符串啊,如何才能得到这些正确的字符串呢?