Windows10をバージョン 1803 にアップグレードしたところ、自作のアプリケーションが動かなくなりました。同じアプリをWindows7で実行すると問題なく動きます。win32アプリからコンソールアプリを:
ret = _spawnlp ( _P_WAIT, EXEC_FILE_NAME, EXEC_FILE_NAME, Arg1, Arg2, Arg3, NULL );
で起動すると、コンソールウインドウが表示され、直後にArg1/Arg2/Arg3の内容を表示します。
●引数に日本語(ShiftJIS)が含まれると、コンソールには文字化けした引数が表示されます。
●引数に日本語(ShiftJIS)が含まれると、コンソールアプリは失敗します(例えばファイルのオープンに失敗する)。
●CMDウインドウに於いて、コンソールアプリを直接起動する(引数にも日本語を含ませて)と、処理に成功します。起動直後の引数表示も文字化けすることはありません。
●尚、win32アプリ、コンソールアプリとも"マルチバイト文字"環境で作成しております。
どのようにすれば問題を解消できるでしょうか、_spawnlp()に渡す文字列をユニコード等に変換すればよいでしょうか、ただし私が調べた限りでは「そうすることが必要だ」と書いた記述などは見つかりませんでした。