我想知道怎么做?例如,如果在C ++主应用程序中发生异常,如何向GUI应用程序发送内容?任何简单的例子都会受到赞赏。
答案 0 :(得分:2)
如果C#GUI应用程序启动C ++控制台应用程序,则后者的退出代码(main()
函数的返回值)可由前者访问,请参阅例如:Process.ExitCode。一般的解决方案是使用某种形式的 InterProcess Communication (IPC)。 Windows示例:here和here。
答案 1 :(得分:0)
假设C ++中的两个应用程序& C#是不同的进程,你不能这样做。
(但您可以在子进程中返回0到255之间的错误代码exit
,并在父进程中使用waitpid
获取错误代码。
但是(至少在Linux上)你可以有一个文本的双向通道(在Linux上,带有命名或匿名管道,或AF_UNIX套接字),并在两个进程之间定义一个协议。
答案 2 :(得分:0)
对于我来说,如果您的c ++应用程序中发生异常,您的应用程序是否要退出,这一点并不十分清楚? 如果您的应用程序假设在错误发生时退出:
但是如果你的c ++应用程序中你处理错误而只是想通知GUI,那么一个解决方案就是:
注意:对于两个进程之间的通信,不止一种方式可能是本文可以帮助您:http://en.wikipedia.org/wiki/Inter-process_communication
答案 3 :(得分:0)
单向是使用WCF服务。我最近在一台需要与另一台机器上的C ++ / CLI应用程序通信的机器上编写了一个C#GUI,我只是通过WCF交换信息(包括错误消息),它在同一台机器上运行同样好。此外,这种方法为您提供了学习WCF的借口。