【发布时间】:2013-11-25 22:32:40
【问题描述】:
我整天都在搞砸,试图让我的 MFC 应用程序在屏幕上显示控制台应用程序的日志输出。从 Visual Studio 2013 的向导给我的开始,我能够修改他们的代码以将字符串作为输入并制作应用程序消息的运行日志(如下):
void COutputWnd::FillBuildWindow(std::string build_text)
{
std::wstring wsTmp(build_text.begin(), build_text.end());
std::wstring z = wsTmp;
LPTSTR x = new TCHAR[z.size() + 1];
_tcscpy(x, z.c_str());
m_wndOutputBuild.AddString(x);
free(x);
}
但是,由于多种原因,我不能从 MFC 函数外部调用它。一是该对象在全局范围内不可见,二是我在我的应用程序的控制台部分使用 windows.h,它不能很好地与 MFC 配合使用。
我的大部分应用程序已经编写完毕,我正在尝试在它周围放置一个 GUI 并使用功能区功能。有没有办法获取 cout 语句并将它们通过管道传输到我的 MFC 应用程序中的消息日志显示?我今天搜索了很多东西,但没有找到任何直接或明确的应用程序,这些应用程序将 MFC 和控制台代码作为其解决方案的一部分。我没有调用单独的可执行文件或 dll。这全部编译为一个独立的 exe。
【问题讨论】:
-
您是否尝试写入 VS 中的“调试输出”窗口?
-
不,我正在尝试向用户展示输出。例如,他们有一个高尔夫分数列表,我在输出屏幕中给他们排名靠前的球员。或者错误,比如他们有错误的数据。
-
考虑到 MFC 的
<afxv_w32.h>包含<windows.h>,声称 MFC 不能很好地处理<windows.h>有点牵强。
标签: c++ visual-c++ mfc