typedef struct msgrecord
{
//int nLen; //此结构的长度
tm time;
CString strFromID;
CString strFromAlias;
CStringArray strArrID;
CStringArray strArrAlias;
CString strMessage;
msgrecord& operator= (msgrecord mr)
{
strFromAlias = mr.strFromAlias;
strFromID = mr.strFromID;
strMessage = mr.strMessage;
time = mr.time;
strArrID.Copy(mr.strArrID);
strArrAlias.Copy(mr.strArrAlias); return *this;
};
}MSGRECORD,*PMSGRECORD;CArray<MSGRECORD,MSGRECORD> arr;
MSGRECORD msg;
arr.Add(msg);时会出如下错误,怎么解决啊?????????????????
error C2440: 'type cast' : cannot convert from 'struct msgrecord' to 'struct msgrecord'
No copy constructor available for struct 'msgrecord'
{
//int nLen; //此结构的长度
tm time;
CString strFromID;
CString strFromAlias;
CStringArray strArrID;
CStringArray strArrAlias;
CString strMessage;
msgrecord& operator= (msgrecord mr)
{
strFromAlias = mr.strFromAlias;
strFromID = mr.strFromID;
strMessage = mr.strMessage;
time = mr.time;
strArrID.Copy(mr.strArrID);
strArrAlias.Copy(mr.strArrAlias); return *this;
};
}MSGRECORD,*PMSGRECORD;CArray<MSGRECORD,MSGRECORD> arr;
MSGRECORD msg;
arr.Add(msg);时会出如下错误,怎么解决啊?????????????????
error C2440: 'type cast' : cannot convert from 'struct msgrecord' to 'struct msgrecord'
No copy constructor available for struct 'msgrecord'
MSGRECORD msg;
char * pms = new char[sizeof(MSGRECORD) + msg.strMessage.GetLength()-4];
memcpy(pms,&msg,sizeof(MSGRECORD) + msg.strMessage.GetLength()-4);
arrMsgRecord.Add(pms);
在外面这样读:
MSGRECORD msg;
memcpy(&msg, (::PMSGRECORD)arr.GetAt(0),sizeof(msg));
CString str = msg.strArrID.GetAt(0);
str = msg.strArrAlias.GetAt(0);但是内容并不对.怎么办啊??
#include <afxtempl.h>
CArray<MSGRECORD,MSGRECORD&> arr;
{
//::MSGRECORD为一不定长结构
int nLen = (sizeof(::MSGRECORD) + msg.strMessage.GetLength()-4); char * pms = new char[sizeof(::MSGRECORD) + msg.strMessage.GetLength()-4];
memset(pms,0,nLen);
memmove(pms,&msg,sizeof(::MSGRECORD) + msg.strMessage.GetLength()-4);
arr.Add(pms);}void main()
{
CPtrArray arr;
Get(arr);
//这里arr得不到值,应怎么做??}