在 Windows 中通过 RPC 发送 UDT

发布于 2024-10-31 05:06:31 字数 520 浏览 6 评论 0原文

我正在掌握 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 中定义它并将其传递吗?

谢谢, J

I'm getting to grips with RPC in Windows and I've got a basic client/server model setup and working and I can pass a string over between the 2 OK but I now need to extend it to pass a binary structure between the 2 and I can't figure out how to. Obviously trying to pass a void* will not work as the MIDL compiler would have no idea of the structure size but I'm hoping there's a way to define a structure in IDL to make this work. My current IDL looks like this:

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

And my structure looks like this:

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

Is there any way to define that in IDL and pass it across?

Thanks,
J

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葵雨 2024-11-07 05:06:31

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

此处开始阅读。

Your object has two string and an int. You can define such an object in the IDL source file and pass them around after the compiler spits out the necessary stubs.

Start here to do the reading.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文