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 Center および File ExchangeAuthor Blocks Using MATLAB S-Functions についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!