Win32应用程序中创建控制台窗口

来源:互联网 发布:python安卓版 编辑:程序博客网 时间:2024/06/01 08:50

在Win32应用程序上默认是没有控制台窗口的,但经常需要用来调试。如何打开呢?

1.设置两个全局的句柄,标准输入和输出。

HANDLE hStdin;HANDLE hStdout;

 

2.建立控制台,并获得句柄(顺序很重要,AllocConsole放在后面会使得hStdin和hStdout获取不到句柄)

AllocConsole();hStdin  = GetStdHandle(STD_INPUT_HANDLE);hStdout =GetStdHandle(STD_OUTPUT_HANDLE);

3.输出

char* buffer ="lzh123";DWORD length =strlen(buffer);WriteFile(hStdout,buffer,length,&length,0);

4.输入(输入读到buffer中)

char buffer[5];DWORD length = 5;ReadFile(hStdin,buffer,length,&length,0);


注意:如果输入

dd(按回车)

则数组buffer为:

buffer[0] = ‘d’;

buffer[1] = ‘d’;

buffer[2] = ‘\r’;

buffer[3] = ‘\n’;

buffer[4] = ????;

 

所以通常在输入前将buffer[4] = ‘\0’;

 

5.释放控制台

FreeConsole();

 

最好的方法:

AllocConsole();freopen("conin$","r+t",stdin);freopen("conout$","w+t",stdout); //这样printf,scanf,cin,cout都可以用int lzh;cout<<"111"<<endl;cin>>lzh;cout<<"thisis "<<lzh<<endl; fclose(stdin);fclose(stdout);



原创粉丝点击