2008-10-17 27 views
15

Estamos pensando en actualización de Visual Studio 2005 a Visual Studio 2008. descubrí el siguiente comentario inquietante:¿Visual Studio 2008 es compatible con Windows 98?

http://msdn.microsoft.com/en-us/library/6sehtctf.aspx

"A partir de Visual C++ 2008, Visual C++ no soporta la orientación de Windows 95, Windows 98, Windows ME o Windows NT ".

¿Significa esto que si reconstruimos nuestros productos con C++ 2008 visual, dejarán de funcionar en las máquinas con Windows 98? Parece que sí, pero me cuesta creer que hagan un gran cambio.

Gracias por su ayuda.

+4

Es confuso cuando dicen que no se "apoyan" la misma. Algunas veces funcionará, simplemente no quieren ayudarte si tienes problemas. Algunas veces, definitivamente no funcionará. Me gustaría que distinguieran entre "hazlo bajo tu propio riesgo" y "no puedes hacer esto". – DOK

Respuesta

13

No se trata solo de .NET 3.5. Se trata de las macros y las definiciones de los archivos de encabezado de SDK de Windows introducidas por el bache de la versión obligatoria en WINVER. Así que sí, Colen, los binarios de Visual C++ 2008 apuntarán solo a las API de Windows NT y, si bien ocasionalmente pueden funcionar en 98, debe suponer que no puede usar Visual Studio 2008 para apuntar a Win9x. Deberá usar VS2005 o anterior.

+3

Deberías hacer más que asumirlo. Los binarios generados por VS9 no se cargarán físicamente en versiones de Windows y Windows NT inferiores a 5. –

+1

No debe suponer que asumo. Se puede jugar con los indicadores de encabezado de archivos PE en la etapa de engarce para conseguir el cargador 9x PE para analizar adecuadamente la salida VS9. Entonces solo se trata de resolver las importaciones de DLL. Pero hay una gran brecha entre "cargas" y "funciona correctamente", por lo que utilicé "ocasionalmente". –

0

de acuerdo con el siguiente enlace, Windows 98 no es compatible con .NET 3.5 así que me imagino que eso es lo que significan. Todavía puede hacer .NET 2.0 y menor desarrollo, pero si usa las bibliotecas 3.5, Windows 98 no es compatible.

.NET 3.5 information

0

El 3.5 Framework ni siquiera se instalará en Windows 2000 Server en este momento. Así que no creo que lo hagan en 95, 98 o NT tampoco. Microsoft ya no quiere la responsabilidad de soportar estos sistemas operativos retirados.

+1

Por favor, no use términos como "M $". No es apropiado para esta comunidad. –

+0

Lo siento, empecé a cabo en el lado de soporte de las cosas y recientemente se trasladó al desarrollo. Supongo que algunos viejos hábitos todavía sangran. Gracias por la edición! – JFV

1

Es natural que no admitan versiones anteriores de su sistema operativo en sus productos más nuevos. Les costaría más (no solo el costo monetario, sino también que sea más difícil o imposible proporcionar algunas funciones útiles más nuevas) para hacer que las cosas funcionen con las limitaciones (y a menudo errores) de los sistemas más antiguos. Esto sucede todo el tiempo, y con todos; nuevas versiones de gcc drop support para arquitecturas antiguas menos populares; las nuevas versiones de glibc requieren una versión mínima del kernel más reciente; y así.

Estos sistemas operativos se han retirado durante mucho tiempo; desde el punto de vista de Microsoft, nadie debería usarlos más. Si aún desea desarrollar para ellos, puede usar herramientas más antiguas de la misma cosecha.

0

Recomiendo que tome esto como una oportunidad para dejar de soportar Windows 9x. Esta es una buena razón para cualquiera que lo haga. Y, al menos si está escribiendo código C/C++ para la API Win32, la vida es mucho más fácil si puede suponer que el sistema operativo objetivo es Windows 2000 o posterior.

0

Si bien estoy de acuerdo con JesperE, Windows 98 es un porcentaje tan pequeño de usuarios que tiene poco sentido apuntarlos, a menos que sepa que un gran porcentaje de sus clientes está utilizando Windows98.

En cualquier caso, de hecho puede orientar Windows 98 en Visual Studio 2008 (no puede desarrollar en Windows 98). Sin embargo, debe orientar sus proyectos únicamente a .NET 2.0, no puede usar ninguna característica 3.0 o 3.5.

3

Sí, significa que: Windows API CreateProcess y LoadLibrary en Windows NT antes de 2000 y todas las de Windows (95,98 Y ME) no cargarán un archivo DLL o EXE creado por VS9 porque el encabezado PE en el archivo tiene el campo de versión del SO requerido en 5.

El mensaje de error al intentar cargar un archivo exe generado VS9 será (será un diálogo de error modal muy desagradable) decir realmente "Necesita actualizar su sistema operativo para ejecutar este programa".

que experimentaron con la edición del campo a 4 - el binario se cargará, pero cualquier uso de la VS9 c-tiempo de ejecución se bloquea o se bloquee el proceso. Hay maneras de conseguir proyectos VS9 a no utilizar sus tiempos de ejecución c-nativos, pero si el uso masivo de C++ cuenta es importante que este enfoque no va a escalar más allá de una pequeña aplicación.

VS8/VS2005 tiene la mayoría de las características de VS9, pero todavía se dirige a las versiones anteriores de sistema operativo, razón por la cual en mi tienda nos estamos quedando con eso por el momento.

Cuestiones relacionadas