class Data {
public:
Material *kind;
double *thickness;
void DataInit(int);
void DataEnd();
};class RWDATA
{
public:
Data m_MData;
int Floor;
int flag;
BOOL m_bOnline;
double value[FREQNUM];
char m_strAction[255];
}m_Dat;void Data::DataInit(int floor)
{
kind=new Material[floor*FREQNUM];
thickness=new double[floor];
}
m_Dat.m_MData.DataInit(2);sockClient.Send(&m_Dat,sizeof(RWDATA));//m_Dat.m_MData的值无法正确收到,怎么解决,请给出具体代码,谢谢
public:
Material *kind;
double *thickness;
void DataInit(int);
void DataEnd();
};class RWDATA
{
public:
Data m_MData;
int Floor;
int flag;
BOOL m_bOnline;
double value[FREQNUM];
char m_strAction[255];
}m_Dat;void Data::DataInit(int floor)
{
kind=new Material[floor*FREQNUM];
thickness=new double[floor];
}
m_Dat.m_MData.DataInit(2);sockClient.Send(&m_Dat,sizeof(RWDATA));//m_Dat.m_MData的值无法正确收到,怎么解决,请给出具体代码,谢谢
我刚才定义了一个函数:
int RWDATA::GetLength(int floor)
{
int m;
m=sizeof(double)*5;
m*=floor*FREQNUM;
m+=sizeof(double)*floor;
m+=sizeof(int)*2;
m+=sizeof(BOOL);
m+=sizeof(double)*FREQNUM;
m+=sizeof(char)*255;
return m;
}
这样好象也不行啊,能不能给出具体的代码??
串行化,可以自己写。如果你的数据类直接派生自CObject,则非常简单。只是数据会稍微大一些。如果变换出来的数据流很大,你可以在发送之前进行数据的压缩。