GetCommandLine()
APIに問題があります。
通常、実行可能ファイル名の後にスペースと引数が続きます。ドキュメントにあるように、最初のトークンには画像への完全なパスが含まれていない可能性があります。
NULL ではない lpApplicationName で CreateProcess を使用するまで、問題はありませんでした。
私が使用する場合:
CreateProcess(NULL, "\"c:\\myexe.exe\" param1 param2", ...)
GetCommandLine
期待どおり「c:\myexe.exe param1 param2」を返します。
しかし、私が使用する場合:
CreateProcess("C:\myexe.exe", "param1 param2")
GetCommandLine
「param1 param2」のみを返します。
別のアプリケーションが自分のアプリケーションを起動した場合に、コマンド ラインで実行可能ファイル名が指定されているかどうかを確認するにはどうすればよいですか?
また、MFC スタートアップ コードは、コマンド ラインの最初のトークンが実行可能ファイル名であると想定し、それをスキップします。ただし、2 番目の CreateProcess API の例で MFC アプリケーションを起動すると、MFC のコードは最初の引数をスキップします。