Советы по использованию библиотеки C из C#

У меня есть библиотека на C, которую я хотел бы использовать из C#.

Из того, что я почерпнул из Интернета, одна из идейзаключается в том, чтобы обернуть его в библиотеку dll C++, и DllImport это.

Проблема в том, что функция, которую я хочу вызвать, имеет довольно неприятный набор параметров: включая ссылку на функцию (которая будет функцией .NET) и пару массивов (некоторые записывают, некоторые читают).

int lmdif(int (*fcn)(int, int, double*, double*, int*), 
          int m, int n, double* x, double ftol, double xtol, double gtol, 
          int maxfev, double epsfcn, double factor)

Учитывая такой интерфейс, на какие неприятности я должен обратить внимание? (И решения тоже, пожалуйста)

Почему бы тебе...

- Переписать на C#? Я начал, но это уже машинный перевод с FORTRAN, и мне не очень нравится кодировать вещи, которые я не могу понять.

- Использовать существующую библиотеку .NET? Я пытаюсь сделать это прямо сейчас, но результаты не совсем те же

- Перекомпиляция в C++? Я думаю об этом, но это похоже на сильную боль

9
задан Benjol 4 June 2012 в 08:12
поделиться