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

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2018년 1월 2일

0 개 추천

原因:
このエラーは使用中のコンピュータの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!