Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我应该如何使用新的命令提示符窗口获取新进程?_C++_Windows_File_Process_Console - Fatal编程技术网

C++ 我应该如何使用新的命令提示符窗口获取新进程?

C++ 我应该如何使用新的命令提示符窗口获取新进程?,c++,windows,file,process,console,C++,Windows,File,Process,Console,我有两个控制台应用程序,第一个运行第二个: 1\u第一个控制台应用程序: #include <Tchar.h> #include <windows.h> #include <iostream> using namespace std; void main(){ PROCESS_INFORMATION obj1; memset(&obj1,0,sizeof(PROCESS_INFORMATION)); STARTUPINFOW obj2; me

我有两个控制台应用程序,第一个运行第二个:

1\u第一个控制台应用程序:

#include <Tchar.h>
#include <windows.h>
#include <iostream>
using namespace std;

void main(){
 PROCESS_INFORMATION obj1;
 memset(&obj1,0,sizeof(PROCESS_INFORMATION));
 STARTUPINFOW obj2;
 memset(&obj2,0,sizeof(STARTUPINFOW));
 obj2.cb=sizeof(STARTUPINFOW);
 CreateProcessW(_TEXT("c:\\runme.exe"),_TEXT("hello what's up?"),NULL,NULL,FALSE,NULL,NULL,NULL,&obj2,&obj1);
}
#include <stdio.h>
#include <iostream>
using namespace std;

int main(int argc,char * * argv){
 if (argc>0)
  for (int i=0;i<argc;i++)
   cout <<"**->**"<<argv[i]<<"\n";
}
#包括
#包括
#包括
使用名称空间std;
void main(){
处理信息obj1;
memset(&obj1,0,sizeof(进程信息));
STARTUPINFOW obj2;
memset(&obj2,0,sizeof(STARTUPINFOW));
obj2.cb=sizeof(STARTUPINFOW);
CreateProcessW(_TEXT(“c:\\runme.exe”)、_TEXT(“你好,怎么了?”)、NULL、NULL、FALSE、NULL、NULL、NULL、&obj2和&obj1);
}
2\u名为runme.exe的第二个控制台应用程序:

#include <Tchar.h>
#include <windows.h>
#include <iostream>
using namespace std;

void main(){
 PROCESS_INFORMATION obj1;
 memset(&obj1,0,sizeof(PROCESS_INFORMATION));
 STARTUPINFOW obj2;
 memset(&obj2,0,sizeof(STARTUPINFOW));
 obj2.cb=sizeof(STARTUPINFOW);
 CreateProcessW(_TEXT("c:\\runme.exe"),_TEXT("hello what's up?"),NULL,NULL,FALSE,NULL,NULL,NULL,&obj2,&obj1);
}
#include <stdio.h>
#include <iostream>
using namespace std;

int main(int argc,char * * argv){
 if (argc>0)
  for (int i=0;i<argc;i++)
   cout <<"**->**"<<argv[i]<<"\n";
}
#包括
#包括
使用名称空间std;
int main(int argc,字符**argv){
如果(argc>0)

对于(int i=0;iPass
CREATE\u NEW\u CONSOLE
,在调用
CreateProcess
时,在流程创建标志(第六个参数)中

CreateProcessW(L"c:\\runme.exe",L"hello what's up?",NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&obj2,&obj1);
调用
CreateProcessW
时,您不希望在字符串上使用
\u TEXT
CreateProcessW
总是使用宽字符串,因此您应该在字符串上始终使用
L
前缀。
\u TEXT
(或
\u T
)仅用于
CreateProcess
(无后缀),因此它可以根据您是否定义UNICODE/\u UNICODE从窄字符串更改为宽字符串