Indy9で書かれたコードの

```

    void __fastcall TfrmMain::ServerConnect(TIdPeerThread *AThread)
    {
         BKUK_PACKET Pkt;
    ----------(中略)---------------------------------------
    
    AThread->Connection->ReadBuffer((BYTE *)&Pkt,sizeof(BKUK_PACKET));
    
    ----------(中略)---------------------------------------
    }
    
```

ReadBufferという名前の機能はIndy10では見当たらないのですが、同等の機能はありますでしょうか？

コードではPktのポインターのメモリ位置に受信したBKUK_PACKETのデータ内容を移動させていると思われます。

BKUK_PACKET(仮名)というのはこのような感じの1200バイト程度のデータ内容です。

```

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

以前Indyを使った時に、データ受信などで

```

    AnsiString rcvdStr;
    
    
        rcvdStr = AContext->Connection->IOHandler->ReadLn(IndyTextEncoding(932));
    
```

このような感じの”ReadLn()”データを受信したことはあるのですが、今回の場合でもReadLn()は使用できますでしょうか？

**（途中経過）**

```

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

ReadBytesという機能を見つけて、上記のようにプログラムしてみたのですが、次のようなエラーが出ます。

> [bcc32c エラー] Main.cpp(530): non-const lvalue reference to type
> 'Idglobal::TIdBytes' (aka 'DynamicArray') cannot bind to a temporary of type
> 'BYTE *' (aka 'unsigned char *')  
>  IdIOHandler.hpp(235): passing argument to parameter 'VBuffer' here

このようなエラーが出てくるのですが、対策方法などありますでしょうか？
CC BY-SA 4.0
2019-11-30T12:57:18.820
60970
2019-12-02T04:57:51.247
2019-12-02T04:57:51.247
2238
35993
question
delphi
Indy9のTIdTCPConnection.ReadBufferと同等の機能はありますか？
お世話になっております。  
こちらのサイトで、とりあえず解決できましたので報告させて頂きます。

Answer: Is there an indy9 function called ReadBuffer in Indy10?
<https://stackoverflow.com/a/59126191/12281072?stw=2>
CC BY-SA 4.0
2019-12-02T03:03:48.730
61001
2019-12-02T03:03:48.730
35993
60970
answer