У меня есть библиотека на 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++? Я думаю об этом, но это похоже на сильную боль