MFC调用CMD控制台
BOOL b=AllocConsole();//创建控制台 //一个进程只能创建一个console,多次调用会返回FALSE;而且,这个窗口是个独立的控制台窗口 //返回值:如果函数成功,则返回值为非零值.如果该函数失败,则返回值为零 HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);//获得控制台输出句柄 //看:https://www.cnblogs.com/liming19680104/p/17002845.html TCHAR ch[] = _T("我是中国人"); int len = lstrlen(ch); BOOL b1 = WriteConsole(hStdout, ch, len, NULL, NULL);//在控制台输出 //看:https://www.cnblogs.com/liming19680104/p/17002845.html CloseHandle(hStdout); //释放输出句柄 TCHAR Buffer[100]; //开缓存 memset(Buffer, 0, 100); DWORD dwCount = 0; //已输入数 HANDLE hdlRead = GetStdHandle(STD_INPUT_HANDLE); //获得控制台输入句柄 ReadConsole(hdlRead, Buffer, 100, &dwCount, NULL); //从控制台输入缓冲区读取字符输入,并将其从缓冲区中删除 //参数1:控制台输入缓冲区的句柄 //参数2:指向接收从控制台输入缓冲区读取数据的缓冲区的指针 //参数3:要读取的字符数。 lpBuffer 参数指向的缓冲区的大小应至少nNumberOfCharsToRead * sizeof(TCHAR)为字节 //参数4:要读取的字符数,第四个参数必须指定,否则会无法读取 //参数5:指向 CONSOLE_READCONSOLE_CONTROL 结构的指针,该结构指定要向读取操作末尾发出信号的控制字符。 此参数可以为 NULL // 此参数默认需要 Unicode 输入。 对于 ANSI 模式,请将此参数设置为 NULL //返回值:如果该函数成功,则返回值为非零值。 如果函数失败,则返回值为零 AfxMessageBox(Buffer); CloseHandle(hdlRead); //释放输入句柄 //BOOL b=::FreeConsole();//关闭控制台 //执行这条指令时会中断,不知道什么原因,请知道的告诉我一下,请底部留言