1

Matlab コンパイラを呼び出すこのコードを見つけました。関数が Matlab コマンド プロンプトから呼び出されたときに正常に動作します。この関数を .Net Assembly にビルドしますが、.m ファイルをビルドするために C# アプリで使用しようとするたびに例外が発生しました。私の問題はどこにあると思いますか?

Matlab コード:

function compileCode(mfile,dllName , dnetdir)

    %% Create directories if needed
    if (exist(dnetdir, 'dir') ~= 7)
        mkdir(dnetdir);
    end

    %% Build .NET Assembly
    eval(['mcc -N -d ''' dnetdir ''' -W ''dotnet:' dllName ',' ...
          '' dllName ',0.0,private'' -T link:lib ''' mfile '''']);
    end

C# コード:

var cmm = new compiler.MatlabCompiler();
MWCharArray x = new MWCharArray(@"C:\Users\ePezhman\Documents\MATLAB\Graph2D.m");
MWCharArray y = new MWCharArray("Graph");
MWCharArray z = new MWCharArray(@"C:\Matlab\dotnet");
cmm.compileCode(x,y,z);

例外:

... MWMCR::EvaluateFunction エラー ... タイプ 'char' の入力引数の関数 'mcc' が定義されていません。エラー => compileCode.m の 9 行目。

... Matlab M コード スタック トレース ... ファイル C:\Users\ePezhman\AppData\Local\Temp\ePezhman\mcrCache8.0\compil0\compiler\compileCode.m、名前 compileCode、9 行目。

4

1 に答える 1