在Windows中通过RPC发送UDT

时间:2011-04-09 11:02:22

标签: c++ windows winapi rpc idl

我正在掌握Windows中的RPC,我已经有了一个基本的客户端/服务器模型设置和工作,我可以在2之间传递一个字符串,但我现在需要扩展它以传递二进制结构2和我之间无法弄清楚如何。显然尝试传递void *将不起作用,因为MIDL编译器不知道结构大小,但我希望有一种方法可以在IDL中定义一个结构来使其工作。我目前的IDL看起来像这样:

[uuid("1D51414D-150C-4F4C-8742-0C08AFBE409E"), version(1.0)]
interface RpcVendor
{
    void SendMessage([in] handle_t hBinding, [in, string] char *message);
}

我的结构看起来像这样:

struct {
    char *title;
    char *message;
    int type;
}

有没有办法在IDL中定义并传递它?

谢谢, Ĵ

1 个答案:

答案 0 :(得分:1)

您的对象有两个字符串和一个int。您可以在IDL源文件中定义这样的对象,并在编译器吐出必要的存根后传递它们。

开始here进行阅读。