デプロイ アプリケーションでの共有ライブラリの呼び出し
MATLAB® の関数 loadlibrary を使用して、共有ライブラリを MATLAB に読み込むことができます。
ヘッダー ファイルを使用したライブラリの読み込みは、コンパイルされたアプリケーションではサポートされません。そのため、関数 loadlibrary とヘッダー ファイルを使用するアプリケーションを作成するには、次の手順に従います。
プロトタイプ MATLAB ファイルを作成します。
loadlibraryを次の構文で呼び出すとします。loadlibrary(library, header)
プロトタイプ ファイルを作成するには、MATLAB で次のコマンドを 1 回だけ実行します。
これにより、現在のフォルダーにloadlibrary(library, header, 'mfilename', 'mylibrarymfile');
が作成されます。Windows® を使用している場合は、mylibrarymfile.mlibrary_thunk_pcwin64.dllという名前の別ファイルも現在のフォルダーに作成されます。MATLAB での
loadlibraryの呼び出しを次のように変更します。loadlibrary(library, @mylibrarymfile)
アプリケーションをコンパイルしてデプロイします。
ライブラリをデプロイ アプリケーションに統合する場合は、
mccコマンドの-aオプションを使用して、ライブラリの.dllをlibrary_thunk_pcwin64.dll(作成されている場合) と共に指定します。コンパイラ アプリを使用している場合は、.dllファイルをアプリの [アプリケーションの実行に必要なファイル] セクションに追加します。デプロイ アプリケーションに統合されていない外部ファイルとしてライブラリを提供している場合は、ライブラリ
.dllファイルをコンパイルされたアプリケーションと同じフォルダーに配置します。Windows を使用している場合は、library_thunk_pcwin64.dllをコンパイルされたアプリケーションに統合しなければなりません。この方法の利点は、デプロイ アプリケーションを再コンパイルせずに、ライブラリを更新されたバージョンに置き換えられる点です。異なるバージョンでのライブラリの置き換えは、ライブラリ内の関数の関数シグネチャが変更されていない場合のみ有効です。これは、
とmylibrarymfile.mlibrary_thunk_pcwin64.dllがライブラリ内の関数の関数シグネチャに関連付けられているためです。
メモ
MATLAB で作成された共有ライブラリを読み込むために、MATLAB 内で loadlibrary を使用することはできません。loadlibrary の詳細については、共有ライブラリのサポートの制限を参照してください。
メモ
オペレーティング システムには関数 loadlibrary があります。これは、呼び出し側プロセスのアドレス空間内に、指定された Windows オペレーティング システム モジュールを読み込みます。