スタンドアロンアプリ​ケーションが起動に失​敗し"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.

 Risposta accettata

MathWorks Support Team
MathWorks Support Team il 2 Gen 2018

0 voti

原因:
このエラーは使用中のコンピュータの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のロードでエラーとなります。
 
 

Più risposte (0)

Categorie

Prodotti

Release

R2017a

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!