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!!\n\n"); // 写数据
 4
 5     HANDLE  outPut;
 6     outPut = GetStdHandle(STD_OUTPUT_HANDLE);
 7     CString strtmp;
 8     strtmp = "WriteConsole-->Hello World! \n\n";
 9     WriteConsole(outPut, strtmp, strtmp.GetLength(), NULL, NULL);
10
11     std::cout << "-->std::cout <<  \n\n--------------\n\n\n\n";
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

原文地址:https://www.cnblogs.com/qq8533/p/12200420.html

时间: 2024-10-03 22:29:23

MFC下调用控制台和控制台下MFC库的支持 补充的相关文章

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

文章转自:https://blog.csdn.net/c437yuyang/article/details/54944668 一直用vs2010对occ进行编译,前几天转到vs2015平台下,好不容易花了两天的时间重新配置好了,但是发现控制台无法输入输出,一开始没在意,但是后面调试时很不方便,就决定将控制台调回来. 一开始以为是程序出错,引入了不同的输入输出流函数等,导致流无法定位,于是在头文件里面屏蔽了相关的 #include <iostream> ,#include <fstream

MFC下对串口的操作以及定时器的调用

最近研究了一下MFC下对串口的操作,测试了一下对设备的读写. 1.打开串口 1 GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(FALSE); 2 m_hComm = CreateFile("COM1", 3 GENERIC_READ | GENERIC_WRITE, 4 0, 5 NULL, 6 OPEN_EXISTING, 7 0, 8 NULL); 9 if (m_hComm == INVALID_HANDLE_VALUE) 10 { 1

MFC下DLL编程(图解)

DLL(Dynamic Link Library,动态链接库)是微软公司为Windows和OS/2操作系统设计一种供应用程序在运行时调用的共享函数库.DLL是应用程序的一种扩展,也是软件共享和重用的传统方法. DLL除了可同时被多个应用程序共享外,还可以在不改变调用接口(从而不需修改使用它的应用程序)的情况下,改进和升级里面的库函数.而且DLL与编写它的语言无关,例如,用VC生成的规则DLL,可以被VB.Delphi等生成的应用程序使用. DLL可以用多种语言和工具编写,我们这里只介绍如何使用M

MFC下的各种字符串类型和相互转换

MFC下的常用字符串数据类型表示的含义: L:Long  长 P:Point  指针 C:Const  常量 W:Wchar_t  宽字符 T:TCHAR  STR:String  字符串 在看看MFC下各种数据类型的定义: 1 typedef char *LPSTR; 2 typedef const char *LPCSTR; 3 4 typedef wchar_t *LPWSTR; 5 typedef const wchar_t *LPCWSTR; 6 typedef wchar_t WCH

MongoDB在MFC下使用C++驱动编译错误的解决

.post p{text-indent: 2em;} 今天使用MongoDB的C++驱动,在编译连接的时候一直出现错误,显示的string_data.h下93行max宏的问题,可视其本身并不是调用max宏,而是调用 std::numeric_limits<size_t>::max 这样就是产生错误,通过搜索发现解决方法(参考网址:http://blog.chinaunix.net/uid-17102734-id-2830143.html),将该函数用括号括起来,避免windows定义的混淆,具

MFC下MCI的使用播放音乐

最近研究了一下MFC下的音乐的播放,主要使用了MCI 1.需要包含的库文件 在链接资源里(link)添加库文件VFW32.lib winmm.lib 2.包含的头文件 1 #include <mmsystem.h> 2 3 #include "stdafx.h" 4 5 #include "vfw.h" 6 7 #include <digitalv.h> 8 9 #pragma comment(lib,"winmm.lib"

在OSSIM控制台下退到了$提示符下没有权限怎么办?

在OSSIM控制台下退到了 $ 提示符下没有权限怎么办? 首次进入控制台输入root密码 进入到系统配置菜单 如果选"Exit"退出菜单,则进入到$提示符下,可用的命令有限.sudo也用不了. 这如何怎么解决? 方法: $exit 在菜单中选择 (3) Jailbreak System 操作视频: http://edu.51cto.com/lesson/id-93553.html

【VS开发】MFC中调用C函数模块的解决方案

[VS开发]MFC中调用C函数模块的解决方案 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:最近调试基于MFC的程序,当通过外部C文件引入某个function的时候,又一次忘记了C文件与C++文件的区别,直接按照一般的方式,将函数声明放入头文件,将函数定义放入C文件,然后再MFC中通过包含头文件来引用对应的function,然而爆出了链接时无法定位的错误,本文就来梳理一下C++中调用C中功能函数的方法. 首先在C

MFC下AfxSocketInit()正确初始化套接字

初始化Socket,这是mfc封装的类调用之前必须进行套接字动态链接库的装载,但是如果你错过了向导中的选项,而是自己手动添加,如果不了解情况,导致程序运行失败. //Socket功能初始化  if (!AfxSocketInit())  {   AfxMessageBox(IDP_SOCKETS_INIT_FAILED);   return FALSE BOOL CMyApp::InitInstance() { ............. ..................;  } 正确的初始