Aplicación en C# que llame código nativo de C o C++

Hola a todos. Tengo que hacer un proyecto en el que trato imágenes del orden de 100MB. En esencia, quiero hacer la interfaz gráfica en C# por las facilidades que proporciona, y el código que requiere rapidez (el tratamiento de las imágenes) en C o C++.

Tengo varias dudas:

- Supongo que C# en modo unsafe es mucho mas lento que usar código nativo C o C++, ¿no es así?.

- En el caso de usar C o C++, no se cual de los dos usar (conozco C) ¿cual es mas óptimo?.

- ¿Sabéis cómo llamar código C o C++ nativo desde C#? (he visto en internet formas de llamar C++ nativo, no .NET, desde C# pero nada de C ¿alguno de los que me lee lo ha hecho alguna vez?).

Saludos, gracias.
pues supongo que tendrás que hacer las funciones en C o C++ y compilarlas en forma de dll para llamarlas desde C#. creo que hay que hacer algo así pero no lo hice nunca.
matlab también tiene un toolbox de procesado de imágenes, no será tan rápido de ejecutar pero te puede valer para ir haciendo pruebas de los algoritmos antes de programarlos en C que es un coñazo (odio los punteros).
un saludo.
Turbo C y a tomar viento XD
Bueno, al final nos hemos decidido a algo parecido a lo que sugiere mmdd: C++ y a tomar viento. Queremos velocidad y sólo lo vamos a lograr con C/C++, y ya de paso hacemos la interfaz en C++ para ahorrar complicaciones y para ganar posibilidades de portarlo a otras plataformas (¿el mismo código que genera wxWidgets funciona bien en Linux y Mac?). Tenemos que aprender C++. Si vemos que se nos viene el mundo encima, sugeriríamos hacerlo todo en C# con unsafes, pero por ahora nos vamos a enfrentar al que a día de hoy manda.

Saludos.
Retomo el hilo, ¿alguien por propia experiencia sabe si C# es significativamente mas lento que C++? (si es un 15% mas lento estoy dispuesto a sacrificarme por no complicarme la vida). Me refiero a si alguien ha hecho alguna vez un mismo programa en ambos lenguajes y ha comparado los tiempos de ejecución...

Saludos.
4 respuestas