Indy10中是否有一个称为ReadBuffer的indy9函数?

问题描述 投票:0回答:1

此代码是由Indy9中的Borland Cpp Builder6编写的。

void __fastcall TfrmMain::ServerConnect(TIdPeerThread *AThread)
{
     BKUK_PACKET Pkt;
----------(中略)---------------------------------------

AThread->Connection->ReadBuffer((BYTE *)&Pkt,sizeof(BKUK_PACKET));

----------(中略)---------------------------------------
}

在Indy10中找不到名为ReadBuffer的函数。有等效功能吗?

BKUK_PACKET是大约1200个字节的结构。

typedef struct _BKUK_PACKET_
{
    BYTE head[4];
    WORD PayLoad;
    WORD Length;
    BYTE Data[1200];
    WORD Ver;
    BYTE tail[2];
}BKUK_PACKET;

[我在查看Indy10的使用说明书时发现了ReadBytes。

Context->Connection->IOHandler->ReadBytes((BYTE *)&Pkt,sizeof(BKUK_PACKET))

当我尝试如上所述编程时,出现以下错误:

[[bcc32c错误] Main.cpp(530):对类型'Idglobal :: TIdBytes'(aka'DynamicArray')的非常量左值引用无法绑定到类型'BYTE *'(也称为'unsigned char *' )IdIOHandler.hpp(235):在此处将参数传递给参数“ VBuffer”]

请告诉我如何解决。谢谢

此代码由Indy9中的Borland Cpp Builder6编写。无效__fastcall TfrmMain :: ServerConnect(TIdPeerThread * AThread){BKUK_PACKET Pkt; ----------(中略)------------------------------------- -...

c++
1个回答
0
投票

ReadBytes()的签名是

© www.soinside.com 2019 - 2024. All rights reserved.