2017-04-13 8 views
0

Matlab R2013a(8.1.0.604)を使用して.dll(.Netアセンブリ)をエクスポートしようとしています。 C#のVisual Studio 2013のdllファイル。 Matlabtest.dllとMWArray.dllの.dllファイルへの参照を追加しました。今では、クラスのオブジェクトを "追加"(Matlabtest.dllからのクラスの名前)にしようとしていますが、Visual Studioはエラーなく動作し、クラスのオブジェクトを作ることができません。参照コードなどを含む任意のソリューションを提案してください。何が足りないのかは、提案と助けが必要です。ここではここビジュアルスタジオC#2013でmatlab .dllをインポートすると問題が発生する

は私のMATLAB関数である

function output = adding(a,b) 
output = a + b; 
end 

は、ボタン上の私のC#コードであるので、

using MathWorks.MATLAB.NET.Arrays; 
using MathWorks.MATLAB.NET.Utility; 


using MatlabTest; 

namespace TestingMatlab 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     private MatlabTest.Adding obj; 

     public MainWindow() 
     { 
      InitializeComponent(); 

     } 

     private void btn_sum_Click(object sender, RoutedEventArgs e) 
     { 
      try 
      { 
       MWArray a; 
       MWArray b; 

       a = (MWArray)txt_num1.Text; 
       b = (MWArray)txt_num2.Text; 

       Adding obj = new Adding(); 

       MWArray output = obj.adding((MWArray)a, (MWArray)b); 

       Console.WriteLine(output.ToString()); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      }      
     } 
    } 
} 
+0

私は、これらは、x86用のdllであると信じています。私は、任意のCPUの代わりにそれを試みるだろう。 – msitt

+0

@msittのお返事ありがとうございますが、x64 dllとMatlab + Visual Studioも使用しています。私のCPUはx64が選択され、x86は例外を投げた。 –

+0

MWArrayに文字列をキャストしていることに気付きましたが、クラッシュする可能性はありません...正しいMCRバージョンがインストールされていると思いますか? – msitt

答えて

1

をクリックして他の誰かが助けを得ることができるように、苦労の後、私は解決策で戻ってきました。問題は、MCR初期化子で実際にしたと私は、次の手順に従ってください、それを解決するための「MCRインスタンスを初期化できませんでした」:

  1. のVisual Studioでの.NET Framework 3.5へのターゲットフレームワークを変更しました
  2. While Matlabのgoto設定でdeploytoolを使用して.dllをエクスポートし、 アプリケーションにCTFアーカイブを埋め込むのチェックを外します。

  3. .dllをエクスポートするときに、projectname.CTFファイルを作成すると、このファイルがVisual Studio Debugディレクトリにコピーされます。
  4. x86またはx64アーキテクチャでを使用して.dllをエクスポートしていることを確認し、それに応じてVisual Studioで[プラットフォームターゲット]を選択します。C:¥Program¥VS¥Debug¥projectname.CTF上記の手順をFollwing

は私の問題を解決し... :)

関連する問題