createprocess 输出重定向

使用createprocess进行输出重定向,在cmd中启动程序命令行模式 ,程序是第三方的,执行后直接退出并没有输出,而是程序中使用AttachConsole 重定向了自己的输入输出,这就使得我用cmd 执行程序时 能看到程序的输出,使用createprocess重定向输出却拿不到输出的内容

IDT中AttachConsole代码

        attached_ = AttachConsole(ATTACH_PARENT_PROCESS);

        if (attached_)
        {
            freopen("conin$", "r+t", stdin);
            freopen("conout$", "w+t", stdout);
            freopen("conout$", "w+t", stderr);

        }

我写的管道重定向代码

    char command[1024];   
    strcpy(command,"cmd.exe "); 
    strcat(command,"/c IDT.exe -i config.xml"); 
    STARTUPINFOW si; 
    PROCESS_INFORMATION pi; 
    si.cb = sizeof(STARTUPINFO); 
    GetStartupInfo(&si); 
    si.hStdError = g_hWrite;   
    si.hStdOutput = g_hWrite;     
    si.wShowWindow = SW_HIDE; 
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; 

    USES_CONVERSION;
    if (!CreateProcess(NULL, A2T(command),NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) 
    { 
        CloseHandle(g_hWrite); 
        CloseHandle(g_hRead); 
        return 1; 
    } 

    if (WAIT_TIMEOUT == WaitForSingleObject(pi.hProcess, INFINITE))
    {
        return 1;
    }
    CloseHandle(g_hWrite);
最简单的

strcat(command,"/c IDT.exe -i config.xml >x:\\result.txt"); 

然后读取 x:\result.txt