En mi empresa, recientemente cambiamos de VC9 a VC10.¿La mezcla de tiempos de ejecución es una solución viable?
Migramos nuestros proyectos, pero luego, la persona a cargo nos dijo que tendríamos que mantener algunos archivos DLL comunes de base compilados con VC9 en nuestras máquinas de producción durante algún tiempo.
Estas DLL hacen uso de estructuras personalizadas, algunas de las cuales contienen std::vector
, std::map
y así sucesivamente. Ahora, me llamó la atención que el tamaño de los contenedores estándar cambió: algunos se hicieron más grandes, otros se hicieron más pequeños. Como resultado, el tamaño de nuestras estructuras personalizadas también cambió.
Para resolver los problemas causados por el cambio de tamaño, un colega mío pensó en aumentar artificialmente el tamaño de nuestras estructuras para compensar los cambios de tamaño de los miembros futuros para que las estructuras tengan el mismo tamaño, independientemente del tiempo de ejecución uso, evitando la corrupción de la pila en llamadas a funciones.
Personalmente, siento que esta "solución" es horrible porque si bien el tamaño importa, también lo hace el diseño de las estructuras. Para mí, aumentar la huella de memoria de todas las estructuras para arreglar problemas organizacionales parece realmente incorrecto.
Para abreviar, mi pregunta es: ¿es posible utilizar simultáneamente dos tiempos de ejecución diferentes (utilizando el truco descrito o cualquier otro truco) mientras se utilizan tipos distintos de C en los prototipos de función? ¿Tienes alguna experiencia buena/mala con respecto a una situación similar?
'1.' no es una opción, pero' 2.' podría funcionar bien. Muchas gracias por el artículo vinculado. – ereOn
@ereOn: De nada. –