dllファイルの動かない問題

61 views (last 30 days)
WAN PYO HONG
WAN PYO HONG on 17 Sep 2019
Commented: WAN PYO HONG on 24 Sep 2019
MATLABに学習した結果(ネットワーク)を保存してC++共有ライブラリファイルを作って他のC++プログラムに連動しています。
でも、Win10とVisualStudio2015が設定してあるパソコン2台から同一な”.Mat”ファイルを使ってdllファイルを作る場合、dllファイルが動かない現象が発生しています。
例えば、
パソコン1(Win10、VisualStudio2015、2018b)、日本語版:C++用DLLファイル作成 → 他のプログラムに連動可能
パソコン2(Win10、VisualStudio2015、2018b)、韓国語版:C++用DLLファイル作成 → 他のプログラムに連動不可(DLLの初期化が失敗)
上記事項についてなんか他の確認が必要な事項がありますか。
  2 Comments
Kojiro Saito
Kojiro Saito on 17 Sep 2019
DLLの初期化失敗のエラーメッセージを教えていただけますか?
WAN PYO HONG
WAN PYO HONG on 17 Sep 2019
ご確認ありがとうございます。
MALABに作成したDLLはVisualStudio2015 Professionalsに連動が必要な状況です。
VisualStudioから発生しているエラーは
LNK2019 未解決の外部シンボル "__declspec(dllimport) void __cdecl DL_TEST(int,class mwArray &,class mwArray &,class mwArray const &,class mwArray const &,class mwArray const &)" (__imp_?DL_TEST@@YAXHAEAVmwArray@@0AEBV1@11@Z) が関数 "protected: virtual int __cdecl CGetTestVCDlg::OnInitDialog(void)" (?OnInitDialog@CGetTestVCDlg@@MEAAHXZ) で参照されました。。。
上記のVisualStudioから出てあるエラーですけれども

Sign in to comment.

Answers (1)

Kojiro Saito
Kojiro Saito on 17 Sep 2019
LNK2019のエラーなので以下2点が考えられます。
(1)ソリューションのプラットフォーム
Visual Studioでソリューションのプラットフォームがx64になっていますでしょうか?
visualstudio_platform.png
(2)追加の依存ファイル
こちらのAnswerのように、追加の依存ファイルの設定が漏れている可能性があります。
「プロジェクト」 -> 「プロパティ」 -> 「リンカ」 -> 「入力」 -> 「追加の依存ファイル」にmclmcrrt.libが追加されていますでしょうか?
  7 Comments
Kojiro Saito
Kojiro Saito on 19 Sep 2019
mclmcr.dllはMATLAB_RuntimeまたはMATLABのbin\win64フォルダーにあります。ファイルが存在しているか確認して、もし存在していなかったらインストールが失敗している可能性があるのでMATLAB Runtimeの再インストールが必要となります。
また、他のソフトウェアでmclmcr.dllと同じ名前のライブラリを使ってファイル競合が起きている場合もあるので、その場合は環境変数PathでMATLAB Runtimeのパスを一番上に持ってきてみてください。
WAN PYO HONG
WAN PYO HONG on 24 Sep 2019
上記の設定にも得意事項がないです。
もっと確認します。
ご対応ありがとうございます。

Sign in to comment.

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!