もう16ビットアプリケーションを起動できません
-
03-10-2019 - |
質問
C ++と書かれたWin32 Macroアプリケーションでいくつかの問題をデバッグして解決しようとしていますが、最も奇妙な問題があります。
16ビットプログラムを起動してから、データを入力することをシミュレートし、2年以上ShellexeCuteを使用しています。私はこの実際のコードにまったく触れていませんが、今ではうまくいきません。
私がやっている ShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);
. 。これは何年もの間完璧に機能してきましたが、突然、 動作が停止しました. 。 Access_deniedエラーコードが提供されます。私はグーグルで検索しましたが、これは16ビットアプリを起動する際のかなり一般的な問題です。
ワークステーションXP SP2環境はまったく変更されておらず、少し前に再建されるまで実際に機能していました(何度も再建しました)。
コードはウィンドウプロシージャ関数内にあり、Winmain関数でプログラムを取り出して起動すると機能しますが、コードはウィンドウの手順にある必要があります...
私は多くの選択肢を試しましたが、それらはすべて同じ問題を抱えています。
これに関する最大の問題はです その後、突然、コードと環境の両方に変更されずに行かないことを突然決定しました! 実際、テストの変更を通じて、動作を停止すると思っていたのはほぼ半分でした。
プログラムの起動なしでは何もできないので助けてください。それは私がデバッグしているコードの最初のステップです!
解決
問題を発見しました。私は変更しました lpDirectory
パラメーター(私が供給していました NULL
また ""
)実行可能ファイルのディレクトリに、 PathRemoveFileSpec()
働き。
アプリケーションは再び起動しています。 今 修正を続けることができます 残り プログラムの!