2009-05-11 5 views
5

Necesito importar un código ANSI C en un proyecto en el que estoy trabajando. Por razones que prefiero no incluir, quiero refactorizar el código a C# en lugar de intentar ajustar el código original. Me tomará tal vez un par de días hacer el trabajo a mano, pero antes de comenzar, ¿hay alguna herramienta automatizada que pueda llevarme la mayor parte del camino hasta allí? Soy un tacaño y el trabajo que estoy haciendo es pro bono, por lo que las herramientas gratuitas solo por favor.¿Existe alguna herramienta para convertir el código ANSI C en C#?

+0

Me alegra verte admitir que eres un tacaño. ;-) – peSHIr

+0

En realidad no soy tacaño por mi propia cuenta, pero estoy dando mi tiempo a ese proyecto en particular de forma gratuita y no estoy dispuesto a gastar dinero en ello. Cuando hago un trabajo remunerado, intento usar las mejores herramientas que puedo pagar. –

Respuesta

2

Si la refacturación manual es "solo" va a tomar unos días, obtendría mi voto. Dependiendo de qué está haciendo el código C y cómo está escrito (punteros, librerías personalizadas, etc.) un convertidor automatizado puede hacer un desastre. Y desenredar ese desastre podría ser una tarea más grande que simplemente convertir a mano.

1

Configuración, la limpieza, la refactorización, y justo hace manifiesto el código convertido (si hay incluso un convertidor disponible), probablemente sería algo en la magnitud de semanas o meses, por lo que estará mejor servido simplemente para seguir adelante con la reescritura manual.

1

Hay un experimental CLI Back-End and Front-End para GCC. Ya es capaz de compilar un subconjunto de programas C en CIL, el código de bytes que ejecuta el CLR.

(La página web hace que parezca que el código sólo se desarrolló durante unos meses y luego ignorado desde entonces, pero que está fuera de fecha; ST Microelectronics está continuando el mantenimiento y el desarrollo.)

No se especifica por qué quieres un traductor de C a C#, pero si solo quieres que C y C# jueguen juntos sin P/Invoke o COM, podría ser suficiente.

1

Puede tener sentido comenzar compilando el código existente como C++ administrado también conocido como C++/CLI. Suponiendo que fue lo suficientemente suave, entonces tiene una base de trabajo, comprobable sobre la cual construir. Mueva las funciones clave a sus propias clases, y según sea necesario, reescriba como C# en el camino.

Cuestiones relacionadas