3

私は私のdllで見ることができるmatlab 2013を使用して小さなプログラムをコンパイルしました: Test.TestMethods すべての私の関数

dot net プロジェクトへの参照として追加し、MWArraymatlab bin\win64\v2.0 フォルダーから dll を追加しました。

** 更新: matlabe で生成されたコードの次の行で、アプリがクラッシュします。

mcr= new MWMCR("", ctfFilePath, embeddedCtfStream, true);

ctf ファイルを埋め込むとクラッシュします。埋め込まないと例外がスローされます。

X64 に対してビルドするようにプログラムを設定しました。

オブジェクトを作成しようとすると:

Test.TestMethods test = new Test.TestMethods();

アプリがクラッシュします。外部の Visual Studio インスタンスでのみ表示できます。

Unhandled exception at 0x0000000001D36E60 (m_interpreter.dll). 
Access violation reading location 0x00000000A5CE3920.

どこから始めたらいいのかわからない....

EDIT1:これはctorです(静的cctorもあります):

    .method public hidebysig specialname rtspecialname 
        instance void  .ctor() cil managed
{
  // Code size       20 (0x14)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
  IL_0006:  ldsfld     class [mscorlib]System.Exception Test.TestMethods::ex_
  IL_000b:  brfalse.s  IL_0013
  IL_000d:  ldsfld     class [mscorlib]System.Exception Test.TestMethods::ex_
  IL_0012:  throw
  IL_0013:  ret
} // end of method TestMethods::.ctor
4

1 に答える 1

1

MATLAB で生成された .NET ライブラリを .NET 4.5 アセンブリから呼び出すことはできません。また、VS デバッガーがアタッチされているとクラッシュします。

于 2013-07-09T05:33:14.117 に答える