C++ 我应该如何使用新的命令提示符窗口获取新进程?
我有两个控制台应用程序,第一个运行第二个: 1\u第一个控制台应用程序: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
#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;iPassCREATE\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从窄字符串更改为宽字符串