在MFC中使用cout

2023-05-16

1.在MainFrame.h中添加头文件:
#include <io.h>
#include <fcntl.h> 


2.在MainFrame.h中声明函数:
public:
  bool OpenConsole();


3.在MainFrame.cpp中添加函数定义:
bool CMainFrame::OpenConsole()
{
	// 保证函数只执行一次
	static bool Runed = false;
	if (Runed)
		return false;
	Runed = true;


	bool result;
	HANDLE hStd;
	FILE* fp;
	long hFile;


	result = AllocConsole();
	hStd = GetStdHandle(STD_INPUT_HANDLE);
	hFile = (long)_open_osfhandle((intptr_t)hStd, _O_TEXT);
	fp = _fdopen(hFile, "r");
	(*stdin) = (*fp);


	hStd = GetStdHandle(STD_OUTPUT_HANDLE);
	hFile = (long)_open_osfhandle((intptr_t)hStd, _O_TEXT);
	fp = _fdopen(hFile, "w");	// 注意:必须是可写模式
	(*stdout) = (*fp);


	hStd = GetStdHandle(STD_ERROR_HANDLE);
	hFile = (long)_open_osfhandle((intptr_t)hStd, _O_TEXT);
	fp = _fdopen(hFile, "w");	// 注意:必须是可写模式
	(*stderr) = (*fp);


	cout << "打开控制台成功" << endl;


	return result;
}


5.在MainFrame的构造函数中添加
  
OpenConsole();


6.在要cout的类的头文件中加入如下代码:
#include<iostream>
using namespace std;


完。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在MFC中使用cout 的相关文章

  • C++:打印双精度的十六进制表示

    有没有一种简单的方法来操作 std cout 以便它以十六进制表示形式打印双精度数 换句话说 相当于 printf PRIx64 reinterpret cast
  • 如何在不使用_setmode的情况下在C++中输出unicode

    我正在尝试将 unicode 值 在本例中为 u250F 或 插入到控制台输出 我四处搜寻 人们推荐了各种各样的东西 在我们讨论我的尝试之前 我使用的是 Windows 和 Visual Studio 2013 主要错误 当我尝试多个 修复
  • MFC> 将对话框连接到对话框类

    我在现有的资源文件中定义了一个新对话框及其控件 我还创建了一个新文件 它将处理从此对话框生成的事件 但我不确定如何连接这两者 是声明enum IDD IDD NEW DIALOG 连接两者所需的一切 或者我们应该添加一些其他声明 在 MFC
  • 为什么C++中函数指针地址以bool类型打印?

    以下代码输出1 但我希望它输出函数的地址add 出了什么问题 include
  • 将变量传递给jsp

    我有一个java类 public void doView RenderRequest renderRequest RenderResponse renderResponse throws IOException PortletExcepti
  • 升级后的 MFC 应用程序看起来仍然很旧

    我有一个用 VC6 编写的 MFC 应用程序 我已将其升级到 VS2015 并且它可以构建并运行 该应用程序是一个主可执行文件 其中包含许多包含对话框的 DLL 然而应用仍然looks就像用 VC6 构建的一样 所有 GUI 组件都没有 W
  • Xcode 在 C++ 控制台中不显示任何内容

    我只是想将 Xcode 用于一个非常小的 C 项目 并且想看看 控制台中有一些打印 问题是我没有看到任何东西 我尝试运行一个非常简单的代码 include
  • 跨平台 Windows / OS X 开发,具有大量现有代码库

    对于使用 MFC 和 WinAPI 用 C 编写的复杂应用程序 有大量现有代码库 需要将其移植到 Mac OS X 理想的解决方案是在不同平台之间拥有尽可能多的通用代码 尤其是诸如业务之类的代码逻辑 GUI 可能会有所不同 具体取决于跨平台
  • 如何向 CMFCPopupMenu 添加图标?

    我想用CMFCPopupMenu用于右键单击期间的弹出菜单 如何添加图标CMFCPopupMenu 这是我在基本 MFC 应用程序中尝试的示例代码 CMFCPopupMenu TestCMFCPopMenu new CMFCPopupMen
  • 使用 cout << 运算符时,如何用前导零填充 int? [复制]

    这个问题在这里已经有答案了 I want cout输出一个带有前导零的 int 所以该值1将被打印为001和价值25打印为025 我怎样才能做到这一点 通过以下内容 include
  • 如何找到激活时打开给定 HMENU 的菜单项(如果有)?

    我想用原型实现一个功能 Locates the menu item of the application which caused the given menu mnu to show up return true if the given
  • 如何调整 CWnd 内 WPF 控件的大小?

    我正在托管 WPFUserControlMFC 内部CWnd 它工作得很好 我现在需要弄清楚如何与其父控件一起调整控件的大小 我已经迷上了OnSize我正在打电话GetWindowRect并将结果设置为我的控件 如下所示 void CChi
  • 禁用/启用 MFC 功能包的功能区按钮

    我正在使用 MFC 功能包 并且功能区栏上有一些按钮 即 CMFCRibbonButton 的实例 问题是我想在某些条件下启用和禁用其中一些 但在运行时 我怎样才能做到这一点 因为没有具体的方法 我听说解决方案是在运行时附加 分离事件处理程
  • _CrtDumpMemoryLeaks( ) == 1 在第一行代码上?

    我正在开发一个 MFC Visual C 项目 据我了解MSDN http msdn microsoft com en us library d41t22sb 28v VS 100 29 aspx CrtDumpMemoryLeaks 应该
  • 正确重载 stringbuf 以替换 MATLAB mex 文件中的 cout

    MathWorks 目前不允许您使用cout当 MATLAB 桌面打开时 从 mex 文件中读取 因为它们已重定向 stdout 他们当前的解决方法是提供一个函数 mexPrintf 他们要求你改用 http www mathworks c
  • 如何在 C++ 中的特定坐标处将字符串打印到控制台?

    我正在尝试在控制台中的指定坐标处打印字符 到目前为止我一直在使用非常丑陋的printf 033 d dH s n 2 2 str 但我只想问 C 是否有其他方法可以做到这一点 问题甚至不在于它丑陋 当我试图让自己成为一个更漂亮的函数时 问题
  • 如何使用 MFC 禁用顶级菜单项并使其变灰

    我有一个对话框应用程序 我希望在对话框顶部有可单击的菜单项 这些项目不显示下拉菜单 但实际上运行关联的命令 我通过在对话框属性中设置 Popup False 并分配消息 ID 来做到这一点 但我的问题是 当项目可点击没有意义时 无法正确禁用
  • 捕获由纯 C++ dll 中的 MFC 应用程序生成的 Windows 消息

    首先 这可能吗 我有一个与某些硬件接口的第三方 dll 它是用MFC编写的 我 从 dll 供应商处 收到了一个示例 Visual Studio 2010 解决方案 该解决方案只有一个项目 调用相关第三方 dll 的 MFC 应用程序 ex
  • 如何在 MFC 中创建带圆角的进度控件?

    我需要在 MFC 应用程序中创建一个带圆角的进度条 我尝试过使用 CreateRoundRectRgn 和 SetWindowRgn 的组合 它具有使控件完全消失的效果 我还尝试使用透明的 GIF 覆盖层 该覆盖层将绘制在进度栏的顶部 但我
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐