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库的支持 补充的主要内容,如果未能解决你的问题,请参考以下文章
OCC平台转到VS2015下MFC程序调用控制台失败解决办法