2012-02-20 41 views

回答

2

您在這裏有幾個選項。

如果返回的值可以適合整數,那麼您絕對應該使用Qt進程的ExitCode

如果返回的值比較複雜,則必須編寫更復雜的IPC系統(進程間通信)。有幾種選擇過於:

  • 寫入到一個純文本文件,然後讀取它在你的C#應用​​程序
  • 添加一個消息隊列(MSMQ例如),然後在C#應用程序
  • 閱讀
  • 主機在C#應用Web服務,並從Qt應用程序調用它(託管Web服務可以很容易地使用WCF骨)
  • 命名管道
  • 使用
+0

謝謝你的迴應。 我的變量實際上更加複雜,我已經考慮過扁平文本文件,但是我需要在每次修改時都快速通知,因此可以知道文本文件是否因事件而改變了? 否則,可以創建Qt Dll並將其與我的程序C#一起使用? 我對MSMQ並不熟悉,但我會對此有所瞭解,我相信Web服務對於我的應用程序來說非常適合,但這是個好主意 – Gat 2012-02-21 10:18:13

+0

您可以編寫一些代碼以在文本文件(基於事件)更改(在.Net中:請參閱'FileSystemWatcher'),但這是一種退出緩慢/低效的方法。你將不得不在文件上處理併發讀/寫操作,這可能會非常棘手。 MSMQ是一種很好的方法(面向消息的方法),因此您可以讓您的Qt進程將消息發佈到隊列中,並且C#進程在消息在隊列中可用時(使用通知系統而不是輪詢)將其出隊。你也應該能夠使用P/Invoke在C#程序中使用Qt dll。 – ken2k 2012-02-21 10:45:06

+0

是的,謝謝你這個解決方案,我不需要一個非常好的優化這個交互和FileSystemWatcher是我更快的解決方案開發。我會在更多瞭解MSMQ的時候改變這一點 – Gat 2012-02-21 16:16:45

相關問題