如何在application中创建console窗口 请问如何在Windows Application中使用CreateWindow创建出类似控制台的窗口 一个比较简单的问题,希望大家不要笑话 :) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用CreateWindowAllocConsole ()一下就有了。 要想去掉控制台窗口,就FreeConsole ()一下 AllocConsole ()之后如果想使用stdin, stdout, stderr这些东西可以这样#include <io.h>#include ...void setup_stdio (){ int fd_stdin = _open_oosfhandle (GetStdHandle (STD_INPUT_HANDLE), _O_RDONLY); int fd_stdout = _open_oosfhandle (GetStdHandle (STD_OUTPUT_HANDLE), _O_TEXT); int fd_stderr = _open_oosfhandle (GetStdHandle (STD_ERROR_HANDLE), _O_TEXT); _dup2 (fd_stdin, 0); _dup2 (fd_stdout, 1); _dup2 (fd_stderr, 2); _close (fd_stdin); _close (fd_stdout); _close (fd_stderr); *stdin = *_fdopen (0, "r"); *stdin = *_fdopen (1, "w"); *stderr = *_fdopen (2, "w");};调用setup_stdio后,就可以使用printf, scanf,之类的函数了 感谢你的回复不过我想用CreateWindow,是因为我想得到窗口的HWND,用什么方法可以得到控制台窗口的句柄?谢谢! 我想使用GetConsoleWindow这个函数,但是在编译的时候不能通过,可能是该函数要求Platform SDK: DLLs, Processes, and Threads。还有其他的方法吗? 你用下面的方法试试! AllocConsole(); char buf[100]; GetConsoleTitle(buf, 100); CWnd *pWnd = FindWindow(NULL, buf); HWND hwnd = pWnd->GetSafeHwnd(); GetConsoleWindow从win2000才开始有所以你应该定义#define _WIN32_WINNT 0x500把它加在stdafx.h中最前面 请问xstring(麻雀) 你说的void setup_stdio (){....}怎么使用?我把它加在主程序中提示“error C2065: '_open_oosfhandle' : undeclared identifier”,加在stdafx.cpp中也提示错误。谢谢! 对CxImage熟悉的同志进来看看。 怎样让对话框作为SDI的一个子窗体 建立vc学习开发团队,欢迎大三大四学生参加 为什么有些窗口的图标,我取不到呢?比如象windows任务管理器,我可以得到它的标题啊,代码如下. [讨论]应用层能进行IP伪装吗? 使用logitech的摄像头做视频传输,初始化时win2000好使,win98出问题,何故? 很基础很基础的问题 画3D魔方,如何实现? vc中使用cmd命令给mysql备份的路径问题 vc6运行之后出现的错误提示 大神们帮帮忙 关于recvfrom的问题!!!!!!!!!!! 问一问题并散分1000分!!
AllocConsole ()一下就有了。
#include ...void setup_stdio ()
{
int fd_stdin = _open_oosfhandle (GetStdHandle (STD_INPUT_HANDLE), _O_RDONLY);
int fd_stdout = _open_oosfhandle (GetStdHandle (STD_OUTPUT_HANDLE), _O_TEXT);
int fd_stderr = _open_oosfhandle (GetStdHandle (STD_ERROR_HANDLE), _O_TEXT);
_dup2 (fd_stdin, 0);
_dup2 (fd_stdout, 1);
_dup2 (fd_stderr, 2);
_close (fd_stdin);
_close (fd_stdout);
_close (fd_stderr);
*stdin = *_fdopen (0, "r");
*stdin = *_fdopen (1, "w");
*stderr = *_fdopen (2, "w");
};调用setup_stdio后,就可以使用printf, scanf,之类的函数了
AllocConsole();
char buf[100];
GetConsoleTitle(buf, 100);
CWnd *pWnd = FindWindow(NULL, buf);
HWND hwnd = pWnd->GetSafeHwnd();
void setup_stdio ()
{
....
}
怎么使用?我把它加在主程序中提示“error C2065: '_open_oosfhandle' : undeclared identifier”,加在stdafx.cpp中也提示错误。谢谢!