呼び出しで OLE EXE サーバーのインスタンスを単純に作成しようとしてCreateDispatchいますが、現在のディレクトリが正しくないために失敗したようです。表示されるエラーは「サーバーの初期化に失敗しました」です。コードをデバッグしたところ、CreateDispatchコードが 3 つのことを行っていることがわかりました。
- CoCreateInstance //私の場合、これは成功します
- OleRun //私の場合、これは「サーバーの実行に失敗しました」というエラーで失敗します
- IDispatch の QueryInterface
私もプロセスを起動しようとしましたが、8番目の引数でCreateProcess正しいものを提供しないと失敗します。CurrentDirectoryCurrentDirectory
CurrentDirectory親がプロセスを生成しようとしているときに、親のものが渡されることを私は知っています。そこで、 API呼び出しで親CurrentDirectoryを適切なディレクトリに変更してみました。SetCurrentDirectoryこれは、同じエラーが発生し、内部で同じ呼び出しに失敗したCreateProcess場合には機能しますが、機能しません。CreateDispatchOleRun
CurrentDirectory を に渡す方法を知っている人はいますCreateDispatchか? または回避策はありますか?