Win32 API'sının Evrimi [kapalı]


11

Windows 32 API'si zaman içinde çok değişti mi? 1998'den itibaren Charles Petzold'un "Programlama Windows, 5. Baskı" kitabı hala ilgili bilgiler içeriyor mu veya çoğu eskimiş / eskimiş mi?

Windows 32 API'sine (varsa) yapılan son eklemelerin bazı önemli örnekleri nelerdir?

Yanıtlar:


4

Windows Vista'daki yeni İş Parçacığı Havuzu API'sı, WinAPI'nin nasıl geliştiğinin basit bir örneği için, iyi yazılmış birden çok iş parçacığı programlarında ciddi bir iyileştirme ve yardımcıdır. Bununla birlikte, uyumluluğu koruma ihtiyacı, Windows API'nın temellerini aynı tutmak için bir itici faktör olmuştur ve CreateWindowEx gibi Ex işlevlerinin baskınlığı gibi ideal olmayan bazı şeylerle sonuçlanmıştır. 64 bit Windows'a karşı 16 bit programlarla uyumluluk için derlenebilen işlevler vardır.

1998'de yaygın olan işlevleri gerçekleştiren WinAPI tabanlı programlar yazmak istiyorsanız, API değişmiş olması muhtemel olmadığından, bu kitap hala kullanılmaya devam edecektir. Tabii ki, kaynak dilde en iyi uygulamalar, özellikle de kitap C veya C ++ için yazıldıysa, önde gelen ligler olabilir, çünkü 1998'den bir kitap neredeyse kesinlikle Standart C ++ 'a karşı yazılmıştır.

Ayrıca, aynı başvuru hem Windows 32 hem de Windows 64'ü yönettiği için doğru başvuru Windows 32 API değil Windows API'dir.


3

Windows'u Programlamanın yine de yararlı olduğunu gördüm . Microsoft'un geriye dönük uyumluluğa verdiği önem sayesinde, tüm temel şeyler (pencere kolları, mesajlar, GDI, vb.) Hala alakalı görünmektedir ve Petzold'da iyi ele alınmıştır. (Bir şey çok büyük ölçüde değiştiyse, çok fazla mevcut Windows programını kıracaktır ve çok sayıda mevcut Windows programı, Windows'un pazardaki avantajının büyük bir parçasıdır.)

Kurulum API'sı , İş Parçacığı Havuzu API'sı ve GDI + gibi belirli yeni API'ler vardır ve Vista ve 7'nin UAC bağlamında çalışma gibi yeni konular vardır. Petzold'un kapsamadığı birkaç bireysel yeni işlev de vardır, ancak MSDN'de daha yeni konulara gerektiği gibi bakmak yeterince kolaydır. , Windows Programlama Windows programlama büyük bir parçası olabilir COM, kapsamaz.

Petzold'un kapsadığı API'nin tamamen düşük seviyeli ve C tabanlı olduğunu unutmayın. (GDI + ve bazı COM öğeleri gibi nesne yönelimli birkaç yeni API vardır.) Hemen hemen her modern geliştirme nesne yönelimli olacak ve genellikle .NET veya Qt veya Delphi'nin VCL gibi bir çerçeve kullanacaktır. Programlama Penceresinde örnek koda benzeyen eksiksiz uygulamaları nadiren yazacaksınız ; ancak, kaputun altında neler olup bittiğini açıklamak hala harika.

Bir süre önce etrafıma baktım ve daha yeni API referansları bulamadım. Bunun mevcut Windows API'lerinin büyüklüğünden kaynaklandığından şüpheleniyorum; Windows programlanıyor, 5. Baskı zaten yaklaşık 1500 sayfa uzunluğunda, yeni bir şeyi kapsayan bir kitap çok büyük olurdu. Henüz okumadım, ancak Programlama Windows için birkaç ilginç görünümlü ek buldum:

  • Don Box'dan Essential COM - Vista'nın yeni API'lerinin birçoğu COM tabanlıdır ve Petzold COM'u kapsamaz.
  • Johnson M. Hart tarafından Windows Sistem Programlama - Petzold'un çok iyi kapsadığı GUI ve GDI şeylerini tamamen atlıyor gibi görünüyor, ancak modern yaklaşımlar hakkında çok yönlü, IPC vb.
  • Windows Internals , Russonovich, Solomon ve Ionescu - API'ler hakkında daha az ve Windows'un başlık altında nasıl çalıştığı hakkında daha fazla bilgi. Russonovich bu konuda muhtemelen Microsoft'un içindeki veya dışındaki herkesten daha fazla şey biliyor.

0

Windows API yıllar içinde değişti. Tamamen yeni işlevler kümesi (örn: TaskDialog ve ailesi) ve mevcut işlevlerin yerine geçer (ör: CreateWindowEx ).

Daha yeni bir referansa başvurmanızı öneririm.


Önerileriniz var mı?
gablin

Ne yazık ki hayır ... Ben gerçekten bir C / C ++ / WinAPI programcısı değilim. Bu yeni işlevlerin varlığını biliyorum.
Powerlord

20 yıllık bir işletim sisteminin o zaman diliminde tüm yeni fonksiyonları eklediğini mi söylüyorsun ?! zihin = şişmiş
MarcusJ

0

Görev Zamanlayıcı da yenidir, birçok yeni nesne ve arabirim eklenmiştir. Görev Zamanlayıcı 2.0'dan önce, zamanlama görevlerinde yaklaşık 5 nesne vardı. 2.0'da (Vista çıktığında tanıtıldı), 20, şaka yapmıyor, 20 var. Bu bir win32 programlama hakkında o kadar da büyük şeyler değil ama o kadar da kötü değil.

Win32'de programlamayı seviyorum, Windows'un ve diğer işletim sistemlerinin daha düşük bir seviyede nasıl çalıştığı hakkında çok şey öğreniyorsunuz ve bu da size inandığım daha iyi bir programcı olmasını sağlıyor. Python'da program yaparsanız, dizinlerin nasıl düzenlendiğini öğrenmezsiniz, sadece kullanın os.listdir(""). FindFirstFile()& FindNextFileWin32 içinde kullanırken dizinlerin nasıl düzenlendiğini keşfedersiniz, gizli ".." & "yi keşfedin. dizinleri ve bundan katalog ve arama dizinleri için daha verimli yollar ile gelebilir.

Win32 kaynakları için http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics adresine gidin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.