| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
BOOL CreateChildProcess(PTCHAR szChildProcessName,PTCHAR szCommandLine) 
{ 
        STARTUPINFO st; 
        PROCESS_INFORMATION pr; 
         
        ZeroMemory( &st,sizeof(st) ); 
        ZeroMemory( &pr,sizeof(pr) ); 
        st.cb = sizeof(st); 
        //创建子进程 返回失败与成功 
        if(!CreateProcess(szChildProcessName, 
                szCommandLine, 
                NULL, 
                NULL, 
                FALSE, 
                0, 
                NULL, 
                NULL, 
                &st, 
                &pr) 
                ) 
        { 
                printf("错误代码: %d.\n",GetLastError()); 
                return FALSE; 
        } 
         
        CloseHandle(pr.hProcess); 
        CloseHandle(pr.hThread); 
         
        printf("%x\n",GetCurrentProcessId()); 
        printf("PID:%x.",pr.hThread); 
 
        return TRUE; 
} 
上面的这个函数的含义是我创建了一个进程,但是这个PID却不一样,一个我用的是函数得出来的,一个是我用结构体指出来的,我是想先创建一个进程然后在关闭这个进程的,可是不知道为什么总是出现句柄无效,一看它的PID完全不一样,这是为什么呢?
printf("%x\n",GetCurrentProcessId()); 父进程pid   printf("PID:%x.",pr.hThread);子进程主线程句柄 肯定不一样 
 
 
 |   
 
 
 
 |