将控制台添加到现有 MFC 应用程序

Posted

技术标签:

【中文标题】将控制台添加到现有 MFC 应用程序【英文标题】:Add console to existing MFC application 【发布时间】:2011-11-05 19:59:02 【问题描述】:

我正在与 2 位朋友在一个班级项目中制作一款 D&D 游戏。到目前为止,我一直在做角色创建工作并在命令行上大摇大摆。

现在我们正在合并或分开,我需要在控制台上输出任何掷骰子结果,并在另一个控制台上输出一些东西,这些东西必须成为主视图或选项卡,或者在需要输入/注意时被调用的任何东西。

问题是我还没有学过 MFC,因为我不需要它。制作一个示例 MFC 控制台,我可以提供给负责 GUI 的队友,这有多难?

谁能给我一些关于为 MFC 应用程序制作控制台以及如何为其提供输出和接收输出的说明?

【问题讨论】:

::AlocConsole 和朋友们 这只是让 cout 和 cin 打开控制台吗?我怎么会有 2 个控制台?我需要更多细节,而不仅仅是一个函数。 @Portaljacker:你不能拥有多个控制台窗口,除非你自己实现它。 cout 是否有效,试试看。我认为应该。 @Portaljacker:另请注意,我的是评论,而不是答案。我了解您需要的远不止这些。如果您知道 API 调用它,您应该在问题中提到它们 :) 我今晚下班回家后试试。如果可行,我建议您将其作为答案,以便我可以给您一些代表。 【参考方案1】:

首先,你不能。对于 Unix/Linux 和 Windows,都有一个控制台/进程限制。如果您想要另一个控制台,则必须创建另一个进程,在您发送和接收数据时写入和读取另一个控制台。

您可以使用 NamedPipe http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx 在进程之间发送数据,CreateProcess() 函数允许您使用单独的控制台窗口创建进程。

或者,您可以在某些 GUI 中编写一个类似控制台的窗口。

【讨论】:

以上是关于将控制台添加到现有 MFC 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 MFC 支持添加到现有 ATL COM 项目吗

MFC项目组合:如何将没有文档类的SDI应用程序添加到MDI应用程序中?应该使用子窗口吗?[MFC]

向现有 mfc 应用程序添加 ATL 支持

MFC窗体程序中添加调试控制台

尝试将控制台应用程序移植到 MFC GUI,但遇到 stdafx 问题

将标尺添加到 MFC 应用程序中的 CDockablePane