visual studio language instalar hack code autocompletar visual-studio-2008 visual-c++ visual-studio-2005 vc6

visual-studio-2008 - language - visual studio code hack



¿Realmente vale la pena migrar desde VC6-> vc2005,2008? (2)

¿Cuál es todo el problema que prevé al hacer eso?


¿Qué tan grande de una base de código estás hablando?

Transmitir un pequeño programa (que en su mayoría es código C ++ sin plantillas) debería ser bastante trivial.

Sin embargo, una vez tuve que convertir 100.000 líneas de código de uso de plantilla de VC6 a VC2005, y fue una semana de pesadilla (5 días de trabajo), el principal problema fue que tuve que arreglar a mano aproximadamente el 30% de los problemas (70 % eran bastante triviales y podrían arreglarlos con búsqueda y reemplazos). Pero más problemático era el hecho de que el código anterior no tenía casos de prueba y ningún marco de prueba, por lo que incluso después de obtener la aplicación para compilar y no segfault, y mirar bien (?), No tenía garantía de que todo estuviera funcionando realmente. como se suponía que era.

Así que en realidad mi consejo es considerar el tamaño del código y la disponibilidad de las pruebas, y también considerar si el código realmente necesita ser portado (en mi caso, eso fue un Sí, pero no siempre es el caso, especialmente si el software se desvanecerá pronto)


  1. VC 6 ya no es compatible con Microsoft , de ninguna manera. Si algo sale mal y por alguna razón no pudimos compilar, estaríamos completamente solos y no podríamos obtener asistencia de Microsoft. Parece poco probable que algo pueda salir mal de esta manera, pero si el código en cuestión es una fuente principal de ingresos, entonces debes tomar las cosas en equilibrio.
  2. Es imposible compilar código de 64 bits en VC6 . Los programas de 32 bits se ejecutan en Windows de 64 bits, al menos por ahora. Pero si necesita aprovechar las posibles ganancias de velocidad y memoria al crear un producto nativo de 64 bits (por ejemplo, poder usar más de 3 GB de RAM en un solo proceso), entonces VC6 está desactivado.
  3. VC9 tiene un cumplimiento de estándares mucho mejor . El cumplimiento de los estándares de VC6 fue muy pobre. Esto es realmente una razón para virar y posiblemente una razón para no hacerlo. Los programadores que usaron VC6 se acostumbraron a hacer las cosas de la "Manera incorrecta", y gran parte de ese código tendrá que ser refactorizado para que funcione en VC9.

Un simple ejemplo de # 3 arriba es un ciclo for:

for( int n = 0; n < someMax; ++n ) { // do stuff } printf("Did %d stuffs", n);

Este código funciona en VC6 pero no en VC9. De hecho, es un programa mal formado: el hecho de que VC6 lo permita es un defecto en VC6.

La decisión de virar de VC6 a VC9 no es una clavada. Debe considerar cuán difícil será el proyecto y equilibrarlo con cualquier ganancia que obtenga y cualquier problema que evite.

Debe revisar las listas de cambios de última hora de Microsoft al decidir si debe emprender este proyecto y cómo hacerlo. La primera lista, que rompe los cambios de VC6 a VC7, es una lista enorme. Los otros son mucho más pequeños en comparación. Lo que sugiere que si transfieres desde VC6 a cualquier cosa, debería ser al menos 2005.