如何在Cpp程序中调用另一个Cpp .exe文件

cpp: how to call another cpp .exe file in a cpp program

本文关键字:Cpp 另一个 exe 文件 调用 程序      更新时间:2023-10-16

我在Windows系统上工作,我已经有一个可执行的cpp程序,在它的文件中,有一个a.exe文件。
现在我正在编写另一个cpp程序,我想在这个程序中执行a.exe
像这样:

void ExecuteA_exe()
{
     // some function to execute a.exe
}

我尝试了三个函数:WinExec, ShellExecuteCreateProcess
但我得到相同的结果:没有----没有错误,但没有运行a.exe .
我的a.exe只是一个简单的cpp程序,当我运行它时,我可以得到控制台窗口。但是如果我运行第二个程序,这意味着我尝试调用ExecuteA_exe()函数来运行a.exe,但是我什么也得不到。我看不到a.exe的控制台窗口

下面是我的小测试:
int main()
{
    ShellExecute(GetDesktopWindow(), "open", "C:\Users\Thomas\Documents\bloomberg - api\MarketDataAgent\Debug\MarketDataAgent.exe", "", "", SW_SHOWNORMAL);
    cout << endl;
    system("pause");
    return 0;
}

当我运行这个程序,它将结束没有任何错误,但也没有运行a.exe。无论如何,我在等待a.exe的控制台,但我不能得到它。

这是一个愚蠢的问题,但我认为它意味着什么。
ShellExecute()的第三个参数是可执行文件的路径。
我所做的是右键单击a.exe -> properties -> General -> Location。
我刚把"Location"复制到我的cpp程序中。但不知怎么的,在"-"的前后加了两个空格,这意味着"bloomberg-api"变成了"bloomberg-api"。
我不知道为什么。
无论如何…