S-Function BuilderからVisual Studio2017​で作成したDLLを利​用するにはどのように​すればよいですか

조회 수: 6 (최근 30일)
Yusuke Ujitoko
Yusuke Ujitoko 2017년 5월 25일
답변: Akihiro Yasuda 2017년 5월 25일
S-Function BuilderからVisual Studio2017で作成したDLLを利用するにはどのようにすればよいですか。
S-Function Builderの「ライブラリ」ペイン中で、 .libファイルを指定し、また、インクルードファイルとしてヘッダファイルを読み込んでいます。
「出力」ペインにおいて、ヘッダファイルで指定した関数を記述しており、 ビルド実行すると、S-fucntion名_wrapper.cファイルが生成されるのですが、
下記のエラーが出ます。
C:\...\AppData\Local\Temp\mex_7597249593262_5544\twice_wrapper.obj:twice_wrapper.c:(.text+0x16): undefined reference to `twice' collect2.exe: error: ld returned 1 exit status コンポーネント:S-function Builder | カテゴリ:Buildエラー
MATLAB上でgetenv PATHで表示されるパス上にDLLやlibファイルを置いているのですが..

채택된 답변

Akihiro Yasuda
Akihiro Yasuda 2017년 5월 25일
結論から申し上げますと、MEXコマンド自体がdllの取り込みに対応していないため、libでの作成をお勧めします。
ソースコード側でLoadLibraryやGetProcAddressなどdllを取り込むコードを記述し、legacy_code関数により、シミュレーション開始・終了時の関数を設定して頂ければ、S-Functionは作成できますが、一般的なアプローチでない事からお勧めできません。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Author Blocks Using MATLAB S-Functions에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!