Consejos para usar una biblioteca C de C #

Tengo una biblioteca en C que me gustaría usar de C #.

De lo que he extraído de internet,Una idea es envolverlo en una dll de C ++, y DllImport eso.

El problema es que la función a la que quiero llamar tiene un conjunto de parámetros bastante desagradable: incluye una referencia a una función (que será una función .NET) y un par de arreglos (algunos escriben, otros leen).

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)

Dada una interfaz como esta, ¿cuáles son los desagradables que debería tener en cuenta? (Y soluciones también, por favor)

¿Por qué no ...

- ¿Reescribir en C #? Comencé, pero ya está traducido automáticamente de FORTRAN, y no me gusta mucho codificar cosas que no puedo entender.

- Utilizaruna biblioteca .NET existente? Lo estoy intentando ahora mismo, pero los resultados no son exactamente los mismos

- ¿Recompilar en C ++? Lo estoy pensando, pero parece mucho dolor.

Respuestas a la pregunta(6)

Su respuesta a la pregunta