我正在开发一个将作为系统运行的服务,并将在后台处理长时间运行的任务。我现在需要以tasktray图标的形式向用户显示一些反馈,我还希望能够从任务栏图标暂停/恢复任务,所以我的要求是向任一方向发送消息并接收任意长度数据阻止响应。单个请求/响应可以正常,但它需要在两个方向上工作。
这是在Windows中使用C ++(非MFC)。
我已经看过MIDL / RPC,因为我过去曾经使用它,但我需要首先定义一个严格的接口规范,并且不能返回任意长度的数据(据我所知)。
对于我可以使用的库,是否有任何建议?
谢谢, Ĵ
答案 0 :(得分:2)
COM是Windows中RPC的最佳解决方案。它非常强大且易于编写。原始的MS-RPC也很好。两者都可以返回任意长度数据,请参阅size_is MIDL属性:
HRESULT Proc7(
[out] long * pSize,
[out, size_is( , *pSize)] my_type ** ppMyType); /* Specifies a pointer
to a sized pointer,
which points to a block
of my_types, whose size is
unknown when the stub
calls the server. */
答案 1 :(得分:1)
您可以使用以下任何一项:
编辑 - 根据评论:
一些基于共享内存的解决方案,包括源代码: