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 行目。