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

 Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 2 Jan 2018

0 votes

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

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Compiler dans Centre d'aide et File Exchange

Produits

Version

R2017a

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!