質問

まあ、これはとても奇妙です、私は何を言うべきかわかりません。短いバージョンは、ユーザーが私に尋ねたときにアプリケーションから生成するシミュレータアプリを持っていることです。コマンドラインまたはスタートメニューからシミュレーターの微細を実行することはできますが、最近機能しなくなりました。これは、VS2010またはWindows 7に移動するか、ソースコントロールの違いを確認していないことが原因である可能性があります。

私は同じ方法でスポーンしようとする2番目のシミュレータを持っています、そしてそれは正常に動作します。

デフォルトでは、この目的のためにQT3のQProcessラッパーをCreateProcessの周りに使用していますが、システム、自分のCreateProcess、ShellexeCuteを使用して同じ動作を取得します。

cmd.exe "/cアプリケーションParamsのshellexecuteは、いくつかの情報を提供してくれます。ダイアログを取得します

「MSVCR80.DLLがコンピューターから欠落しているため、プログラムは開始できません。この問題を修正するためにプログラムを再インストールしてみてください。」

不便なことに、親アプリケーションと2番目のシミュレーターの両方がMSVCR80.DLLを使用します。

g: windows winsxs x86_microsoft.vc80.crt_1fc8b3b9a18e3b_8.0.0.50727.4927_none_d08a205e442db5b5b5b5b5b5b5b5から、私の実行と同じように誤ってメッセージを変えるために、g: windows winsxs x86_microsoft.vc80.crt_8.0.0.0.50727b3からコピーすると、コピーすると

"ランタイムエラー!
プログラム:g: path to app.exe
R6034
アプリケーションは、Cランタイムライブラリを誤ってロードしようとしました。
詳細については、アプリケーションのサポートチームにお問い合わせください。

に続く

アプリケーションは正しく開始できませんでした(0xc0000142)。 [OK]をクリックしてアプリケーションを閉じます。

そして、もう一度、アプリケーションは、それらのDLLが所定の位置にあるコマンドラインから正常に実行されます。


アップデート:

おそらくそれが環境に関連していると疑っていたので、CMD /Cセット&& App Paramsを実行するためにShellexecuteメカニズムを変更しました。同じパラメージを使用してCMD.exeをセットアップしましたが、アプリも同様にクラッシュしています。理由を理解したら更新します:)

MATLABのコンポーネントランタイムツールは、プロセスのパス変数を悪い効果に変更しています。それは、DLLでいっぱいの独自の監督を準備し、大混乱を引き起こしています。

役に立ちましたか?

解決

私が使用していた愚かなツールは、いくつかのDLLを動的にロードするために必要なディレクトリを準備し、後でアプリケーションを台無しにしたディレクトリを準備しました。最後の例に示すように、私はgetEnvironmentStringsを使用することになりました ここ, 、Path env varの最初のエントリを消去し、CreateprocessaをラップするQProcessに新しい(元の)環境を送信します。

他のヒント

インストールする必要があります CRT

これ 五月 仕事 - 壊れた場合、あなたは両方のピースを保持することができます:-)

ここからVC ++の再配布可能をインストールしてみてください - http://www.microsoft.com/downloads/en/details.aspx?familyid=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en.

システムをインストールする前に、システムをバックアップし、復元ポイントなどを作成することを忘れないでください。

別のアイデア - 失敗したアプリケーション自体を再インストールしてみてください。 VC ++再配布物の独自のコピーが付属する可能性があり、再インストールすることが役立つ場合があります。特にWindows 7のコンパビリティモード(おそらくVistaまたはXPの互換性に戻る)を使用して再インストールしようとすると、さらに効果的かもしれません。

繰り返しますが、あなたは試してみる必要があります。上記のアイデアのどちらかがあなたに良いことをするか、害を及ぼさないかどうかは本当の考えはありません。とはいえ、もし私が同様の問題に直面したなら、これらは私が試すステップです。 hth!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top