2011-04-09 69 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