2011-04-09 30 views
0

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

[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

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

开始here来做阅读。

+0

谢谢,这是我希望的。你如何在IDL源文件中定义对象?我一直在浏览MSDN网站,我能找到的唯一信息与定义函数而不是对象有关。 – JWood 2011-04-09 11:51:51