Итак, у меня есть функция внутри библиотеки C ++:
double MyFunc(double** data, int length)
{
//data elements are accessed like this
(*data)[i] = 5.0;
}
В C # я получаю доступ к этой функции следующим образом:
//import
[DllImport(@"MYDLL.dll")]
public static extern double MyFunc(ref double[] data, int length);
//usage
MyFunc(ref data, data.Length);
Это глупо, потому что я бы лучше написал:
double MyFunc(double* data, int length)
{
//data elements are accessed like this
data[i] = 5.0;
}
Проблема в том, что я не знаю, как я мог получить доступ к требуемой функции C ++ из C # ... Я не очень хорошо разбираюсь в значениях Marshaling ... Как бы я это сделал?