私はCreateProcessを使ってC++アプリケーションから外部プロセスを実行しようとしています。CreateProcessはlpCurrentDirectory /親作業ディレクトリを無視します
起動したアプリケーションは、そのディレクトリにあるdllを検索すると失敗します。
プロセスエクスプローラ(sysinternalsから)でexecutwdプロセスを調べると、プロセス作業ディレクトリは親作業ディレクトリではなくc:\ windowsであることがわかります。
lpCurrentDirectoryを使用して作業ディレクトリをハードコードすることも役に立ちません。
システムコマンドを使用すると、プロセスが正しく実行されます。
EDIT 問題のあるディレクトリはモジュールディレクトリではなく、現在の作業ディレクトリです。
modulesディレクトリは、期待通りに検索されますが、DLL が含まれていません(モジュールディレクトリにSLLをコピーする、それブタSA回避策を作品)
DLLをロードする実行可能モジュールがからロードされたディレクトリである場合は、Windowsが見える最初の場所。あなたのDLLがそこにあれば、それが見つかるでしょう。問題は明らかにそれがあなたが思うものではありません。 –