.exe
的文件类型。我有两个test1.txt
和test2.txt
个文件,在这些文件中有两个 PATHes 到 pr1.exe 和 pr2.exe < / strong>即可。但是在第一个txt文件中我运行 pr1.exe 和 pr2.exe ,在另一个文件中有 pr2.exe 和 pr1 .exe 。
#include <iostream>
#include <fstream>
#include <process.h>
using namespace std;
int main(int argc, char *argv[]) {
cout << "argc = " << argc << endl;
for (int i = 0; i < argc; i++) {
cout << "Argument: " << i << " = " << argv[i] << endl;
}
if (argc != 2) {
cout << "Error" << endl;
exit(-1);
}
char ch;
ifstream infile;
infile.open(argv[1]);
if (!infile) {
cout << "errrrror: cant open a file" << argv[1];
exit(-1);
}
while (infile) {
infile.get(ch);
cout << ch;
}
cout << endl;
system("pause");
return 0;
}
例如:我编写了test1.txt
的路径,它打印了 pr1.exe 和 pr2.exe 的两个路径,它们如下:
&#34; C:\ Users \ N \ Desktop \ process \ 2d文件\ Debug \ 2d file.exe&#34;
&#34; C:\ Users \ N \ Desktop \ process \第一个文件\ Debug \ the 1st file.exe&#34;
你能告诉我如何运行它们吗?
答案 0 :(得分:0)
您正在寻找的是CreateProcess
功能,可在msdn找到更多信息:
// start the program up
#include "windows.h"
std::wstring("pr1.exe");
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if(!CreateProcess(NULL, (LPWSTR)wstr.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
//error
}
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
注意:如果您没有向程序发送任何命令行参数,您也可以交换第一个和第二个参数。