我发现这个代码来调用Matlab的编译器,它工作正常时,函数从MATLAB命令提示符叫,我建立这个功能.NET程序集,但每当我试图尽可能地使用它在我的C#应用程序来构建一些.m文件我得到一个例外,你觉得我的问题是什么?
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错误...未定义功能“MCC”类型“字符”的输入参数。 误差在=> compileCode.m第9行。
... MATLAB M代码堆栈跟踪......在文件C:\用户\ ePezhman \应用程序数据\本地的\ Temp \ ePezhman \ mcrCache8.0 \ compil0 \编译\ compileCode.m,名compileCode,9号线。