1

Matlab Builder NE でいくつかの Matlab コードをコンパイルしたいと考えています。
このコードでは、.NET コンポーネントを使用する Matlab の組み込み機能を使用して、.NET アセンブリを呼び出したいと思います
。 :

  1. C# は Matlab でコンパイルされた .NET DLL を呼び出します
  2. MCR は .NET アセンブリを使用して何かを行います (上記のとおり)。
  3. MCR が C# に応答を返す

以下は、ターゲットとして .NET4 を使用して .NET コンポーネントにコンパイルされている Matlab コード サンプルです。

function ver = GetVersion()
    NET.addAssembly('System');
    ver = char(System.Environment.Version.ToString())};
end

しかし、この単純なコードをコンパイルしてverを見ると、.NET 4 ではなく .NET 2 を使用していることがわかります。

Matlab から直接使用すると、バージョン 4 になり
ます。コンパイルされた DLL で .NET ランタイム バージョンを制御するにはどうすればよいですか?

4

1 に答える 1

1

コマンド「mcc」は、ターゲット マシンでサポートされている最新バージョンのバージョンを作成します。バージョンを選択できます。

ちょうど今、私は自分のコンピューターでテストを行っています。.Net 2.0のバージョンをコンパイラーに設定するためのユーザー mcc

mcc -W 'dotnet:TestVersion,Version,2.0,private' -d 'C:\Users\HW-WIN7-TEMP\Documents\MATLAB\TestVersion\src' -T 'link:lib' -v 'class{Version:C:\Users\HW-WIN7-TEMP\Documents\MATLAB\GetVersion.m}'

そして、ターゲット バージョン 3.5 を使用して C# プログラムを実行します。同じ結果が得られます。

ver = GetVersion() ver = 2.0.50727.5448

于 2011-12-30T09:29:18.027 に答える