我想让我的C ++程序在Windows中执行另一个.exe。 我将如何做到这一点? 我正在使用Visual C ++ 2010。
这是我的代码
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { unsigned int input; cout << "Enter 1 to execute program." << endl; cin >> input; if(input == 1) /*execute program here*/; return 0; }
你可以使用system
功能
int result = system("C:\\Program Files\\Program.exe");
使用CreateProcess()函数。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx
这是我以前在寻找答案时找到的解决方案。
它指出,你应该总是避免使用system(),因为:
相反,可以使用CreateProcess()。
Createprocess()用于启动一个.exe并为其创建一个新的进程。 应用程序将独立于调用应用程序运行。
#include <Windows.h> void startup(LPCSTR lpApplicationName) { // additional information STARTUPINFOA si; PROCESS_INFORMATION pi; // set the size of the structures ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); // start the program up CreateProcessA ( lpApplicationName, // the path argv[1], // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE CREATE_NEW_CONSOLE, // Opens file in a separate console NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi // Pointer to PROCESS_INFORMATION structure ); // Close process and thread handles. CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }
您可以使用system
拨打电话
system("./some_command")