0

これが私が呼び出そうとしている関数です:

function TPipeClient.Write(var Buffer; Count: Integer): Boolean;

書き込む tMessages のキューである別のクラスがあります。

tMessage = class
  public
    function getData(): PByte; virtual; abstract;
    function getLen(): integer; virtual; abstract;
end;

したがって、次のように TPipeClient.Write を呼び出そうとすると、次のようになります。

FClient.Write(queue[pos].getData(), queue[pos].getLen());

(Fclient は tClientPipe、キューは tMessage の配列)

一致するオーバーロードされたバージョンが一致しないというエラーが表示されるので、次のことを行います。

FClient.Write(@(queue[pos].getData()), queue[pos].getLen());

そして、別のコンパイル エラーが発生します: 変数が必要です。

これをキャストして送信する方法についてのアイデアはありますか?

4

1 に答える 1