typedef struct {
int type;
CString strMsg;
ULONGLONG size;
CString strFileStart;
CString strFileEnd;
void SetData( int type,CString strMsg,ULONGLONG size,CString strFileStart,CString strFileEnd)  
{   
this->type = type;  
this->strMsg = strMsg; 
this->size=size;
this->strFileStart=strFileStart;
this->strFileEnd=strFileEnd;
}
}UPDATEDATA;
UPDATEDATA data[8];
data.SetData(type,strMsg,flodersize,"","");
::PostMessage(hwnd,WM_UPDATEDATA,0,(LPARAM)&data[type]);
error C2676: 二进制“[”: “UPDATEDATA”不定义该运算符或到预定义运算符可接收的类型的转换这错误什么意思啊?不能这么用么?那要怎么办呢?求高手指点!

解决方案 »

  1.   

    你这个数据结构不能用消息传的
    要用tcp传
      

  2.   

    不是数组的话就可以传啊,是用来更新显示的,tcp传是什么意思?
      

  3.   

    data[type].SetData(type,strMsg,flodersize,"","");
      

  4.   

    消息只能传递两个32位整数
    你现在传了指针,指向一个可以说是buffer的东西
    然后你想在接收侧解析
    把数据结构的头文件包含进去就能解析了
    但你要保证传出来的这个东西不是局部变量,不然生命周期一结束,什么都释放了