Подключение С++ библиотеки, сгенерированной Matlab-ом в C# код
Подскажите как мне ее правильно подключить в шарпе сделал класс
public partial class MatlabCaller
{
private static class MatlabSumFromCpp
{
[DllImport("libTest.dll")]
public static extern void mlxTest(int nargout, ref MWArray outParam, ref MWArray in1, ref MWArray in2);
}
public int Sum(int a, int b)
{
MWArray in1 = new MWNumericArray(a);
Console.WriteLine("in1 created");
MWArray in2 = new MWNumericArray(b);
Console.WriteLine("in2 created");
MWArray outParam = new MWNumericArray();
Console.WriteLine("outParam created");
MatlabSumFromCpp.mlxTest(1, ref outParam, ref in1, ref in2);
Console.WriteLine(outParam);
return 0; // это временно - я хочу что бы библиотека заработала в начале
}
}
Библиотека в матлабе представляет собой банальную сумму
function [out] = SUM(in1, in2)
out = in1 + in2;
end
Но при запуске не стартует расчет - система ругается на отсутствие точки входа:
System.EntryPointNotFoundException: "Unable to find an entry point named 'SUM' in DLL 'libTest.dll'."
Почему С++, а не .Net как умеет Matlab - у меня приложение на .Net Core и работать будет и под Unix, и под Windows. Хотел для начала разобраться с подключением в винде, а потом уже в никсах.
Идея сделать 2 класса обертки и вызывать в зависимости от типа системы.
Точки входа побывал менять (SUM имя моей функции в MATLAB, но мне компилятор выдал еще .h и .cpp там трафарет обертки - брал и оттуда.
Есть вариант попробовать сделать C++ обертку над С++ Matlab-а, но его я попробую, если напрямую подключить не удастся.