G
gsgs1199
Unregistered / Unconfirmed
GUEST, unregistred user!
有一段代码,在一个工程中运行是可以把自己定义的结构从
SERVER传送到CLIENT的(即TSERVERSOCKET和TCLIENTSOCKET控件在一个TFORM内);
但是分成2个工程后(即即TSERVERSOCKET和TCLIENTSOCKET控件不在一个TFORM内)就不行了。
但是结构中的 int iCount 等可以传送正确 但 char * 等就不对了,问题就是这样。
程序片段如下:
typedef struct{[][][]
int iCount;
char *Buf;
} S;
S *sSendStruct=new S;
sSendStruct->iCount=777;
sSendStruct->Buf=new char [MAXSENDSIZE];
pf=new TFileStream("c://1.avi",fmOpenRead);
pf->Read(sSendStruct->Buf,MAXSENDSIZE);
SS->Socket->Connections[0]->SendBuf(sSendStruct,sizeof(S)+MAXSENDSIZE);
//(关键是上面这一句,sSendStruct中的内容是正确的, sSendStruct->iCount可以发送正确
//但是 sSendStruct->Buf就是发送不正确,为什么呢?)
delete pf;
delete sSendStruct;
有研究过的高手赐教吗?小弟先行拜谢!
SERVER传送到CLIENT的(即TSERVERSOCKET和TCLIENTSOCKET控件在一个TFORM内);
但是分成2个工程后(即即TSERVERSOCKET和TCLIENTSOCKET控件不在一个TFORM内)就不行了。
但是结构中的 int iCount 等可以传送正确 但 char * 等就不对了,问题就是这样。
程序片段如下:
typedef struct{[][][]
int iCount;
char *Buf;
} S;
S *sSendStruct=new S;
sSendStruct->iCount=777;
sSendStruct->Buf=new char [MAXSENDSIZE];
pf=new TFileStream("c://1.avi",fmOpenRead);
pf->Read(sSendStruct->Buf,MAXSENDSIZE);
SS->Socket->Connections[0]->SendBuf(sSendStruct,sizeof(S)+MAXSENDSIZE);
//(关键是上面这一句,sSendStruct中的内容是正确的, sSendStruct->iCount可以发送正确
//但是 sSendStruct->Buf就是发送不正确,为什么呢?)
delete pf;
delete sSendStruct;
有研究过的高手赐教吗?小弟先行拜谢!