首页
社区
课程
招聘
[求助]获取标准输入输出句柄的问题.
发表于: 2009-2-24 10:52 6956

[求助]获取标准输入输出句柄的问题.

2009-2-24 10:52
6956
代码如下:
HANDLE  hStdIn,hStdOut;
hStdIn = GetStdHandle(STD_INPUT_HANDLE);
hStdOut= GetStdHandle(STD_OUTPUT_HANDLE);

if(hStdIn == INVALID_HANDLE_VALUE || hStdOut == INVALID_HANDLE_VALUE)
{
          if(hStdIn)
               CloseHandle(hStdIn);
          if(hStdOut)
               CloseHandle(hStdOut);
          return 0;  
}
DWORD  dwret;
if(!WriteConsole(hStdOut,  "This is a test",  lstreln("This is a test"),  &dwret,  NULL))
{
        DWORD Error = GetLastError();
        CloseHandle(hStdOut);
        CloseHandle(hStdIn);
        return 0;
}

调试的时候,获得的hStdOut句柄的值,总是0x00000000,然后调用WriteConsole返回错误号6,说hStdOut是无效句柄.但是按照MSDN上说,fails 返回 INVALID_HANDLE_VALUE.

不知道哪里出错了,还望那位点一下...

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 297
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
这个是不是只在控制台程序中有效?
好像stdout的handle值为7.
2009-2-24 13:16
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
3
先AllocConsole()
看看呢
2009-2-24 14:16
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
兄弟  你少调用一个函数 --GetConsoleScreenBufferInfo 这个函数是获得显示屏幕的长宽,这个函数需要俩个参数,一个是你刚才获得的输出句柄, 另一个是一个结构 CONSOLE_SCREEN_BUFFER_INFO,MSDN上有个例子好像。
2009-2-25 18:09
0
游客
登录 | 注册 方可回帖
返回
//