// 在ProudNet中,Proud.ByteArray類型
// 可以用作RMI參數,如下所示。
Foo([in] Proud::ByteArray something);
// --- PIDL 到這裡
// 這允許您使用過去的傳輸和接收處理例程。
// 傳送訊息時,將在過去的訊息傳送例程中建立的緩衝區物件插入 Proud.ByteArray 物件中。
// 然後,Proud.ByteArray 物件作為 RMI 的參數發送。
// 建立訊息對象
Proud::CMessage msg;
/* 使用者建立的 msg 物件尚未指定使用哪個緩衝區。
在這些情況下,您必須呼叫 UseInternalBuffer 才能使 << 運算子發揮作用。
UseInternalBuffer 假定 msg 物件中未指定緩衝區使用。
因此,如果已指定緩衝區使用情況,則不應呼叫此方法。
有關更多詳細信息,請參閱 Proud.CMessage.UseInternalBuffer 幫助。*/
msg.UseInternalBuffer();
msg << a << b;
Proud::ByteArray block;
block.SetCount(msg.GetLength());
memcpy(block.GetData(), msg.GetData(), block.Count);
Foo(Proud::HostID_Server, Proud::RmiContext::ReliableSend, block);
// 接收訊息時,Proud.ByteArray 物件作為開發人員實作的 RMI 函數內的 RMI 參數被接收,
// 提取您需要的資料。
DEFRMI_MyPIDL_Foo(MyClass)
{
// Parameter 'block' and the others are is given
Proud::CMessage msg;
msg.UseExternalBuffer(block.GetData(), block.Count);
msg.SetLength(block.Count);
msg >> a >> b;
...
}