【问题标题】:Sending UDT over RPC in Windows在 Windows 中通过 RPC 发送 UDT
【发布时间】:2011-08-02 01:18:39
【问题描述】:

我开始掌握 Windows 中的 RPC,并且我有一个基本的客户端/服务器模型设置和工作,我可以在 2 OK 之间传递一个字符串,但我现在需要扩展它以传递一个二进制结构在 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 中定义并传递它?

谢谢, J

【问题讨论】:

    标签: c++ windows winapi rpc idl


    【解决方案1】:

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

    开始here 阅读。

    【讨论】:

    • 谢谢,这就是我所希望的。你如何在 IDL 源文件中定义对象?我一直在浏览 MSDN 站点,我能找到的唯一信息与定义函数而不是对象有关。
    猜你喜欢
    • 2011-12-08
    • 2015-02-12
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多