所以我使用这段代码来启动带参数的控制台应用程序:
#include <iostream>
#include <windows.h>
using namespace std;
void StartProgram(char argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
CreateProcess
(
TEXT("PlayerDebug.exe"),
(LPSTR)argv,
NULL,NULL,FALSE,
CREATE_NEW_PROCESS_GROUP | CREATE_NO_WINDOW,
NULL,NULL,
&si, &pi
);
};
int main()
{
StartProgram("sound.wav");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
"PlayerDebug.exe"显示用于调用它的参数.但是当我按照我展示的方式使用CreateProcess运行它时,它不会显示任何内容.我检查并在任务管理器中似乎出现,但仍然不显示参数.我也尝试写入cout << argv;函数void StartProgram(char argv[])并返回" sound.wav",这是正确的.但似乎这个论点没有传递给PlayerDebug.exe,我不知道为什么.我做错了什么?(我是C++编程的新手)