【发布时间】:2012-02-20 09:21:01
【问题描述】:
我需要与两个应用程序进行通信,一个在 Qt c++ 中,另一个在 C# 中。 原理是C#应用启动Qt应用,Qt返回值给C#应用。 最好的方法是什么?
盖特
P.S:我是 C++ 初学者,C# 中级
【问题讨论】:
标签: c# c++ communication
我需要与两个应用程序进行通信,一个在 Qt c++ 中,另一个在 C# 中。 原理是C#应用启动Qt应用,Qt返回值给C#应用。 最好的方法是什么?
盖特
P.S:我是 C++ 初学者,C# 中级
【问题讨论】:
标签: c# c++ communication
这里有几个选项。
如果返回的值可以放入整数,那么您绝对应该使用 Qt 进程的ExitCode。
如果返回的值比较复杂,那就得写一个比较复杂的IPC系统(Inter Process Communication)。也有几种选择:
【讨论】:
FileSystemWatcher),但这是一种退出缓慢/低效的方法。而且您必须处理文件的并发读/写,这可能很棘手。 MSMQ 是一种很好的方法(面向消息的方法),因此您可以让 Qt 进程在队列中发布消息,而 C# 进程在消息在队列中可用时将它们出列(使用通知系统,而不是轮询)。您还应该能够使用 P/Invoke 在 C# 程序中使用 Qt dll。