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

6 Ansichten (letzte 30 Tage)
Yusuke Ujitoko
Yusuke Ujitoko am 25 Mai 2017
Beantwortet: Akihiro Yasuda am 25 Mai 2017
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ファイルを置いているのですが..

Akzeptierte Antwort

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

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!