スタンドアロンアプリ​ケーションが起動に失​敗し"The operating system cannot run %1"というエラーになるのはなぜですか?

MATLAB Compilerを使用してスタンドアロンアプリケーションを作成しましたが、実行時に以下のようなエラーとなります。
 
Fatal Internal Error: std::exception: Loading C:\Program Files\MATLAB\R2017a\bin\win64\matlab_startup_plugins\lmgrimpl\libmwlmgrimpl.dll failed with error: The operating system cannot run %1.

 采纳的回答

原因:
このエラーは使用中のコンピュータのWindows\system32 フォルダ内に古いバージョンのssleay32.dll およびlibeay32.dllが存在している場合に現れることがあります。
 
回避方法:
  1. MATLABの環境(<MATLABインストールフォルダ>\bin\win64)内にあるSSLEAY32.DLL および LIBEAY32.DLLファイルを実行形式ファイル(EXE)と同じフォルダにコピーします。実行形式ファイルのあるフォルダがsystem32フォルダよりも優先順位が高い場合、この方法により必要なDLLを確実に使用することができます。
 
  1. もう一つ、SSLEAY32.DLL および LIBEAY32.DLL をsystem32フォルダから削除する方法もあります。この方法により実行形式ファイルはMATLABに含まれたDLLのみを使用することになりますが、system32フォルダに格納されたこれらのDLLがほかのアプリケーションから使用されている場合は、それらのアプリケーションに影響を与えることになります。このため、別の方法としてこれらのDLLファイルを新しいバージョンに置き換えるという方法もあります。
 
 PS: もし、確実に原因を調査する場合は Dependency Walkerを使用して、どのようなSSLEAY32.DLL および LIBEAY32.DLLが(MATLAB環境またはMCR環境以外の)どのようなフォルダロードされているかを確認する方法があります。
この現象はlibmwlmgrimpl.dllファイルがロードされる前に発生します。最初にPOCOライブラリがロードされ、その次にlibmwlmgrimpl.dllがロードされますが、libmwlmgrimpl.dllはPOCOライブラリを使用するためPOCOのロードに失敗するとlibmwlmgrimpl.dllのロードでエラーとなります。
 
 

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB Compiler 的更多信息

产品

版本

R2017a

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!