Evolução da API do Win32 [fechada]

11

A API do Windows 32 mudou muito com o tempo? O livro de Charles Petzold "Programming Windows, 5th Edition", de 1998, ainda contém informações relevantes ou a maioria está obsoleta / desatualizada?

Quais são alguns exemplos importantes de adições recentes à API do Windows 32 (se houver)?

fredoverflow
fonte

Respostas:

4

A nova API do Pool de Threads no Windows Vista é uma melhoria e auxílio sério a vários programas de threads bem escritos, para um exemplo simples de como o WinAPI evoluiu. No entanto, a necessidade de manter a compatibilidade foi um fator determinante para manter os princípios básicos da API do Windows iguais e resultou em algumas coisas não ideais, como a predominância de funções Ex como CreateWindowEx. Ainda existem funções compiláveis ​​no Windows de 64 bits que são compatíveis com programas de 16 bits.

Esse livro ainda será útil se você quiser escrever programas baseados em WinAPI que executam funções comuns em 1998, pois é improvável que a API tenha sido alterada. Obviamente, as melhores práticas na língua de origem podem muito bem ser léguas à frente, especialmente se o livro for escrito para C ou C ++, já que um livro de 1998 quase certamente foi escrito contra o C ++ pré-padrão.

Além disso, a referência correta é a API do Windows, não a API do Windows 32, pois a mesma API governa o Windows 32 e o Windows 64.

DeadMG
fonte
3

Eu achei a programação do Windows ainda útil. Graças à ênfase da Microsoft na compatibilidade com versões anteriores, todas as principais coisas (identificadores de janelas, mensagens, GDI etc.) ainda parecem relevantes e estão bem cobertas no Petzold. (Se algo mudasse drasticamente, isso quebraria muitos programas Windows existentes, e o grande número de programas Windows existentes é uma grande parte da vantagem do Windows no mercado.)

Existem novas APIs específicas, como Setup API , Thread Pool API e GDI + , e há novos tópicos, como trabalhar dentro do contexto do Vista e do 7's UAC. Existem também várias novas funções individuais, que o Petzold não cobre, mas é fácil o suficiente procurar tópicos mais recentes no MSDN, conforme necessário. A programação do Windows também não abrange o COM, o que pode ser uma grande parte da programação do Windows.

Lembre-se de que a API que o Petzold cobre é de baixo nível e baseada em C. (Existem algumas APIs mais recentes, como GDI + e algumas das coisas de COM, que são orientadas a objetos.) Virtualmente, qualquer desenvolvimento moderno será orientado a objetos e geralmente usará uma estrutura como .NET ou Qt ou VCL da Delphi, para que você raramente escreveremos aplicativos completos que se parecem com o código de exemplo em Programming Windows ; no entanto, ainda é ótimo para explicar o que está acontecendo sob o capô.

Eu olhei ao redor há um tempo atrás e não consegui encontrar nenhuma referência mais recente à API. Eu suspeito que isso se deve ao tamanho das APIs atuais do Windows; A programação do Windows, 5ª edição, já tem quase 1500 páginas, um livro que abordasse algo novo seria muito grande. Encontrei alguns suplementos interessantes para a programação do Windows , embora ainda não os tenha lido:

  • COM essencial , por Don Box - Várias das novas APIs do Vista são baseadas em COM, e Petzold não cobre COM.
  • A Programação do Sistema Windows , de Johnson M. Hart - parece ignorar completamente as coisas da GUI e da GDI que o Petzold cobre tão bem, mas possui muito mais detalhes sobre as abordagens modernas, como multithreading, IPC, etc.
  • Windows Internals , de Russonovich, Solomon e Ionescu - menos sobre APIs e mais sobre como o Windows funciona sob o capô. Russonovich possivelmente sabe mais sobre isso do que qualquer pessoa dentro ou fora da Microsoft.
Josh Kelley
fonte
0

A API do Windows mudou ao longo dos anos. Foram adicionados conjuntos de funções totalmente novos (por exemplo: TaskDialog e family) e substituições por funções existentes (por exemplo: CreateWindowEx ).

Eu recomendo consultar uma referência mais recente.

Powerlord
fonte
Tem alguma sugestão?
precisa saber é
Infelizmente, não ... eu não sou realmente um programador de C / C ++ / WinAPI. Eu apenas sei da existência dessas novas funções.
Powerlord 24/01
Você quer me dizer que um sistema operacional de 20 anos adicionou novas funções ao longo desse período ?! mente = fundido
MarcusJ
0

O Agendador de tarefas também é novo, muitos novos objetos e interfaces foram adicionados. Antes do Agendador de tarefas 2.0, havia cerca de 5 objetos envolvidos no agendamento de tarefas. Na versão 2.0 (apresentada quando o Vista foi lançado), existem 20, sem brincadeira, 20. Essa é uma das coisas não tão boas sobre a programação win32, mas não é tão ruim assim.

Adoro programar no win32, você aprende muito sobre como o Windows e outros sistemas operacionais operam em um nível mais baixo e isso o torna um programador melhor. Se você programa em python, não aprende sobre como os diretórios são organizados, basta usar os.listdir(""). Mas ao usar o FindFirstFile()& FindNextFileno win32, você descobre como os diretórios são organizados, descobre os ".." e "." Ocultos. diretórios e a partir daí podem surgir maneiras mais eficientes de catalogar e pesquisar diretórios.

Para obter recursos do win32, acesse http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

user14321
fonte