MFC下调用控制台和控制台下MFC库的支持 补充

Posted qq8533

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC下调用控制台和控制台下MFC库的支持 补充相关的知识,希望对你有一定的参考价值。

补充:https://www.cnblogs.com/wind-net/p/3153971.html

2.通过配置相关属性
  通过在 属性->配置属性->生成事件->后期生成事件->命令行 中添加 
  editbin /subsystem:console $(OutDir)$(TargetName).exe
  使用cout或者printf向控制台输出 也可以通过获取标准输出句柄然后调用WriteConsole
  方式输出

 1 void CtestDlg::OnBnClickedButtonwriteconsole()
 2 {
 3     printf("printf-->Hello World!!

"); // 写数据
 4 
 5     HANDLE  outPut;
 6     outPut = GetStdHandle(STD_OUTPUT_HANDLE);
 7     CString strtmp;
 8     strtmp = "WriteConsole-->Hello World! 

";
 9     WriteConsole(outPut, strtmp, strtmp.GetLength(), NULL, NULL);
10 
11     std::cout << "-->std::cout <<  

--------------



";
12 }

关闭控制台窗口会导致应用全部关闭,修改控制台标题,去除关闭菜单! 

 1 BOOL CtestDlg::OnInitDialog()
 2 {
 3     CDialog::OnInitDialog();
 4 ...
 5     char   szBuf[100];
 6     GetConsoleTitle(szBuf, 100);//得到控制台标题
 7     HWND   hwnd = ::FindWindow(NULL, szBuf);//查找控制台
 8     HMENU   hmenu = ::GetSystemMenu(hwnd, FALSE);//获取菜单
 9     ::RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);//移除关闭
10 
11     return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
12 }

这个控制台在代码编译后链接时加入的。

有时候需要在程序编译之前或之后做一些操作。

https://www.cnblogs.com/suntanyong88/articles/10422660.html

以上是关于MFC下调用控制台和控制台下MFC库的支持 补充的主要内容,如果未能解决你的问题,请参考以下文章

MFC程序 调用控制台输出

已经写好的控制台应用如何用MFC来添加窗口?

OCC平台转到VS2015下MFC程序调用控制台失败解决办法

未调用 MFC 的 CWinThread::PostThreadMessage 处理程序

MFC中使用控制台输出调试信息

MFC中使用控制台输出调试信息