Подключение С++ библиотеки, сгенерированной 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-а, но его я попробую, если напрямую подключить не удастся.


Ответы (0 шт):