2010-08-11 6 views
9

tengo que modificar el tiempo de ejecución C que se suministra con VS2010 porque el CRT 2010 se basa en las funciones liberadas en Windows XP SP2, y necesito ser capaz de desplegar a Windows 2000.¿Cómo puedo compilar la Biblioteca en tiempo de ejecución C de VS 2010?

Específicamente, necesito y eliminar cualquier todas las llamadas a EncodePointer y DecodePointer.

La fuente del tiempo de ejecución de C se incluye en C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ crt \ src, por lo que parece que debería ser posible construir el tiempo de ejecución después de modificar ligeramente la fuente .

Oh, no necesito ser capaz de compilar las versiones dinámicas del tiempo de ejecución, solo versiones estáticas. (No puedo confiar en que el usuario instale el CRT en su sistema tampoco).

Con VS2008 y versiones anteriores, hubo un tutorial en MSDN que describe cómo construir el CRT, pero me parece que no puede encontrarlo para 2010.

¿Es posible tal cosa?

+0

Posible engaño: http://stackoverflow.com/questions/2484511/can-i-use-visual-studio-2010s-c-compiler-with-visual-studio-2008s-c-runtime –

+0

@Clark: No , esa pregunta se trata de usar el CRT de VS2008 con VS2010. Aquí estoy preguntando si puedo usar el CRT de VS2010, pero lo modifico para eliminar la dependencia yo mismo. –

+0

Ya veo. Bueno. /15chars –

Respuesta

6

Aquí hay un MSDN link. Parece que tienes que hacerlo tú mismo en VS2010.

Puede utilizar las siguientes opciones de compilador y enlazador para reconstruir las bibliotecas MFC, CRT y ATL. A partir de Visual C++ 2010, ya no se envían scripts para reconstruir estas bibliotecas.

+1

Damnit. Así que, básicamente, estoy jodido. :( –

+0

@Billy: No tanto como para afrontar la tarea de crear un proyecto para construir el CRT usted mismo –

+1

Sí, pero no sé qué archivos están realmente en el CRT. Lo que dificulta la configuración de un proyecto. –

0

Si es una opción, consideraría usar el conjunto de herramientas de VC++ 2008 dentro de VS2010 en lugar de construir un CRT personalizado. El procedimiento se explica here.

+0

Eso es lo que ya estoy haciendo. La razón que realmente apesta es que me gustaría usar cosas como 'std :: unique_ptr' y mover semántica, que están disponibles solo con el compilador de VS 2010. –

+0

Acepto, mencioné esta solución solo en caso de que no lo haya pensado. Buena suerte. – KeatsPeeks

0

"Oh, ya no tienen que ser capaces de construir las versiones dinámicas del tiempo de ejecución - versiones estáticas solamente."

Dado que solo necesita enlace estático, puede probar el truco this para proporcionar implementaciones de EncodePointer y DecodePointer.

Cuestiones relacionadas