此代码是使用 Indy 9 在 Borland C++Builder 6 中编写的:
void __fastcall TfrmMain::ServerConnect(TIdPeerThread *AThread)
{
BKUK_PACKET Pkt;
----------(中略)---------------------------------------
AThread->Connection->ReadBuffer((BYTE *)&Pkt,sizeof(BKUK_PACKET));
----------(中略)---------------------------------------
}
ReadBuffer()
在 Indy 10 中找不到命名的函数。有等效的函数吗?
BKUK_PACKET
是一个大约1200字节的结构。
typedef struct _BKUK_PACKET_
{
BYTE head[4];
WORD PayLoad;
WORD Length;
BYTE Data[1200];
WORD Ver;
BYTE tail[2];
}BKUK_PACKET;
我ReadBytes()
在查看 Indy 10 的说明手册时发现。但是当我尝试如下编程时,出现错误:
Context->Connection->IOHandler->ReadBytes((BYTE *)&Pkt,sizeof(BKUK_PACKET))
[bcc32c 错误] Main.cpp(530):对类型“Idglobal::TIdBytes”(又名“DynamicArray<unsigned char>”)的非 const 左值引用无法绑定到“BYTE *”类型的临时变量(又名“无符号字符” *')
IdIOHandler.hpp(235):在此处将参数传递给参数“VBuffer”
请告诉我如何修复此代码。