Evolución de la API Win32 [cerrado]

11

¿Ha cambiado mucho la API de Windows 32 con el tiempo? ¿El libro de Charles Petzold "Programming Windows, 5th Edition" de 1998 todavía contiene información relevante, o la mayoría está obsoleta / desactualizada?

¿Cuáles son algunos ejemplos destacados de adiciones recientes a la API de Windows 32 (si hay alguna)?

flujo libre
fuente

Respuestas:

4

La nueva API Thread Pool en Windows Vista es una mejora seria y ayuda a los programas de hilos múltiples bien escritos, como un simple ejemplo de cómo ha evolucionado WinAPI. Sin embargo, la necesidad de mantener la compatibilidad ha sido un factor determinante para mantener los conceptos básicos de la API de Windows iguales y ha resultado en algunas cosas no ideales, como el predominio de funciones Ex como CreateWindowEx. Todavía hay funciones compilables contra Windows de 64 bits que son compatibles con programas de 16 bits.

Ese libro seguirá siendo útil si desea escribir programas basados ​​en WinAPI que realicen funciones que eran comunes en 1998, ya que es poco probable que la API haya cambiado. Por supuesto, las mejores prácticas en el idioma de origen pueden estar muy por delante, especialmente si el libro está escrito para C o C ++, ya que es casi seguro que un libro de 1998 fue escrito contra C ++ anterior al Estándar.

Además, la referencia correcta es la API de Windows, no la API de Windows 32, ya que la misma API gobierna tanto Windows 32 como Windows 64.

DeadMG
fuente
3

He encontrado que la Programación de Windows sigue siendo útil. Gracias al énfasis de Microsoft en la compatibilidad con versiones anteriores, todo lo esencial (identificadores de ventana, mensajes, GDI, etc.) parece ser relevante y está cubierto en Petzold. (Si algo cambiara demasiado drásticamente, rompería demasiados programas existentes de Windows, y la gran cantidad de programas existentes de Windows es una gran parte de la ventaja de Windows en el mercado).

Hay nuevas API específicas, como la API de configuración , la API de Thread Pool y GDI + , y hay nuevos temas, como trabajar en el contexto del UAC de Vista y 7. También hay varias funciones nuevas individuales que Petzold no cubre, pero es bastante fácil buscar nuevos temas en MSDN según sea necesario. La programación de Windows tampoco cubre COM, que puede ser una gran parte de la programación de Windows.

Tenga en cuenta que la API que cubre Petzold es de bajo nivel y basada en C. (Hay algunas API más nuevas, como GDI + y algunas de las cosas COM, que están orientadas a objetos). Prácticamente cualquier desarrollo moderno estará orientado a objetos y a menudo utilizará un marco como .NET o Qt o VCL de Delphi, por lo que Raramente escribirá aplicaciones completas que se vean como el código de ejemplo en Programación de Windows ; Sin embargo, sigue siendo excelente para explicar lo que sucede debajo del capó.

Miré a mi alrededor hace un tiempo y no pude encontrar ninguna referencia de API más nueva. Sospecho que esto se debe al gran tamaño de las API de Windows actuales; La programación de Windows, 5ª edición ya tiene casi 1500 páginas, un libro que cubría cualquier cosa nueva sería demasiado grande. Encontré un par de suplementos interesantes para la programación de Windows , aunque todavía no los he leído:

  • COM esencial , de Don Box: varias de las nuevas API de Vista están basadas en COM, y Petzold no cubre COM.
  • La Programación del sistema de Windows , de Johnson M. Hart, parece omitir por completo la interfaz gráfica de usuario y el GDI que Petzold cubre tan bien, pero tiene muchos más detalles sobre los enfoques modernos de subprocesamiento múltiple, IPC, etc.
  • Windows Internals , de Russonovich, Solomon e Ionescu, menos sobre las API y más sobre cómo Windows funciona bajo el capó. Russonovich posiblemente sabe más sobre esto que nadie dentro o fuera de Microsoft.
Josh Kelley
fuente
0

La API de Windows ha cambiado con los años. Se agregaron conjuntos de funciones completamente nuevos (ej .: TaskDialog y family), y reemplazos para funciones existentes (ej: CreateWindowEx ).

Recomiendo consultar una referencia más nueva.

Powerlord
fuente
¿Tienes alguna sugerencia?
gablin
Lamentablemente, no ... No soy realmente un programador de C / C ++ / WinAPI. Solo sé de la existencia de estas nuevas funciones.
Powerlord
¿Quiere decirme que un sistema operativo de 20 años ha agregado funciones completamente nuevas durante ese período de tiempo? mind = blown
MarcusJ
0

El Programador de tareas también es nuevo, se han agregado muchos objetos e interfaces nuevos. Antes de Task Scheduler 2.0, había alrededor de 5 objetos involucrados en la programación de tareas. En 2.0 (introducido cuando salió Vista), hay 20, no es broma, 20. Esta es una de las cosas no tan buenas de la programación de win32, pero no está tan mal.

Me encanta programar en win32, aprendes mucho sobre cómo Windows y otros sistemas operativos funcionan a un nivel inferior y creo que te hace un mejor programador. Si programa en python, no aprenderá sobre cómo se organizan los directorios, simplemente use os.listdir(""). Pero cuando usa FindFirstFile()& FindNextFileen win32 descubre cómo están organizados los directorios, descubre el ".." & "oculto". directorios y de ahí pueden surgir formas más eficientes de catalogar y buscar directorios.

Para obtener recursos de win32, vaya a http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

usuario14321
fuente