文字列変数を使用してプロセスを作成しようとしています。C++ create process-string cmd行パラメータのvar - 何も起こっていません
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
ZeroMemory(&pi, sizeof(pi));
si.cb = sizeof(si);
std::string cmd_line = game_path + " " + std::string(game_params);
std::cout << cmd_line << "\n";
if (!CreateProcess(NULL, LPTSTR(cmd_line.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
std::cout << "fail\n";
return false;
}
COUTのcmd_lineから出力された正しいパスとパラメータ:
C:\\Program Files (x86)\\My_Game\\Game.exe -test -admin
のCreateProcessの呼び出しはfalseを返しているが、私は正確な理由はわかりません。私はこれにかなり新しいので、どんな助けや助言も素晴らしいでしょう。
(https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(V = VS.85).aspxの):「機能の場合失敗した場合、戻り値はゼロです。拡張エラー情報を取得するには、GetLastErrorを呼び出します。アドバイスに従って、その拡張情報の一部を入手することから始めることをお勧めします。関連性があるかもしれません。 – user4581301
ありがとう。私はここでコードを使用しています:https://msdn.microsoft.com/en-us/library/windows/desktop/ms680582(v=vs.85).aspx 私はエラーコード2 - ファイルを取得しています存在しません。私はアドレスバーなどから直接パスをコピーしています。何かが欠けていない限り、正しいパスが特定されています – user3238415