Evolusi API Win32 [ditutup]

11

Apakah API Windows 32 berubah banyak dari waktu ke waktu? Apakah buku Charles Petzold "Programming Windows, 5th Edition" dari tahun 1998 masih berisi informasi yang relevan, atau sebagian besar sudah usang / ketinggalan zaman?

Apa saja contoh menonjol dari penambahan terbaru untuk API Windows 32 (jika ada)?

fredoverflow
sumber

Jawaban:

4

Thread Pool API baru di Windows Vista adalah peningkatan serius dan bantuan untuk beberapa program utas yang ditulis dengan baik, untuk contoh sederhana tentang bagaimana WinAPI telah berkembang. Namun, kebutuhan untuk mempertahankan kompatibilitas telah menjadi faktor pendorong untuk menjaga dasar-dasar Windows API tetap sama dan telah menghasilkan beberapa hal yang tidak ideal, seperti dominasi fungsi Ex seperti CreateWindowEx. Masih ada fungsi yang dapat dikompilasi terhadap Windows 64bit yang untuk kompatibilitas dengan program 16bit.

Buku itu masih akan berguna jika Anda ingin menulis program-program berbasis WinAPI yang menjalankan fungsi-fungsi yang umum pada tahun 1998, karena kecil kemungkinannya API telah berubah. Tentu saja, praktik terbaik dalam bahasa asal mungkin adalah liga di depan, terutama jika buku itu ditulis untuk C atau C ++, karena buku dari 1998 hampir pasti ditulis terhadap pra-Standar C ++.

Juga, referensi yang benar adalah Windows API, bukan Windows 32 API, karena API yang sama mengatur Windows 32 dan Windows 64.

DeadMG
sumber
3

Saya menemukan Pemrograman Windows masih bermanfaat. Berkat penekanan Microsoft pada kompatibilitas ke belakang, semua hal inti (pegangan jendela, pesan, GDI, dll.) Tampaknya masih relevan dan dibahas dengan baik di Petzold. (Jika ada perubahan terlalu drastis, itu akan merusak terlalu banyak program Windows yang ada, dan sejumlah besar program Windows yang ada adalah bagian besar dari keuntungan Windows di pasar.)

Ada API baru yang spesifik, seperti API Pengaturan , API Pool Thread , dan GDI + , dan ada topik baru seperti bekerja dalam konteks Vista dan 7's UAC. Ada juga beberapa fungsi baru individual, yang tidak dibahas Petzold, tetapi cukup mudah untuk mencari topik baru di MSDN sesuai kebutuhan. Pemrograman Windows juga tidak mencakup COM, yang dapat menjadi bagian besar dari pemrograman Windows.

Perlu diingat bahwa API yang dicakup Petzold adalah semua level rendah dan berbasis C. (Ada beberapa API yang lebih baru, seperti GDI + dan beberapa hal COM, yang berorientasi objek.) Hampir setiap perkembangan modern akan berorientasi objek dan sering akan menggunakan kerangka kerja seperti .NET atau Qt atau Delphi VCL, sehingga Anda Akan jarang menulis aplikasi lengkap yang terlihat seperti kode contoh di Pemrograman Windows ; namun, masih bagus untuk menjelaskan apa yang terjadi di bawah tenda.

Saya melihat-lihat beberapa waktu lalu dan tidak dapat menemukan referensi API yang lebih baru. Saya menduga ini karena ukuran tipis dari API Windows saat ini; Memprogram Windows, Edisi ke-5 sudah hampir 1500 halaman, sebuah buku yang membahas hal-hal baru akan terlalu besar. Saya memang menemukan beberapa suplemen yang tampak menarik untuk Memprogram Windows , meskipun saya belum membacanya:

  • Essential COM , by Don Box - Beberapa API baru Vista berbasis COM, dan Petzold tidak mencakup COM.
  • Pemrograman Sistem Windows , oleh Johnson M. Hart - tampaknya sepenuhnya mengabaikan hal-hal GUI dan GDI yang dicakup Petzold dengan sangat baik, tetapi ia memiliki lebih banyak detail tentang pendekatan modern multithreading, IPC, dll.
  • Windows Internal , oleh Russonovich, Solomon, dan Ionescu - lebih sedikit tentang API dan lebih banyak tentang bagaimana Windows bekerja di bawah tenda. Russonovich mungkin tahu lebih banyak tentang ini daripada siapa pun di dalam atau di luar Microsoft.
Josh Kelley
sumber
0

API Windows telah berubah selama bertahun-tahun. Ini ditambahkan set fungsi yang sama sekali baru (mis: TaskDialog dan keluarga), dan penggantian untuk fungsi yang ada (mis: CreateWindowEx ).

Saya akan merekomendasikan berkonsultasi dengan referensi yang lebih baru.

Powerlord
sumber
Punya saran?
gablin
Sayangnya, tidak ... Saya bukan programmer C / C ++ / WinAPI. Saya baru tahu keberadaan fungsi-fungsi baru ini.
Powerlord
Maksudmu OS berusia 20 tahun telah menambahkan seluruh fungsi baru selama periode waktu itu ?! mind = blown
MarcusJ
0

Penjadwal Tugas juga baru, banyak objek & antarmuka baru telah ditambahkan. Sebelum Penjadwal Tugas 2.0, ada sekitar 5 objek yang terlibat dalam tugas penjadwalan. Di 2.0 (diperkenalkan ketika Vista keluar), ada 20, tidak bercanda, 20. Ini adalah salah satu hal yang tidak begitu besar tentang pemrograman win32 tetapi tidak terlalu buruk.

Saya suka pemrograman di win32 Anda belajar banyak tentang bagaimana Windows & OS lain beroperasi pada tingkat yang lebih rendah & itu membuat Anda seorang programmer yang lebih baik saya percaya. Jika Anda memprogram dalam python, Anda tidak belajar tentang bagaimana direktori diatur, cukup gunakan os.listdir(""). Tetapi ketika menggunakan FindFirstFile()& FindNextFiledi win32 Anda menemukan bagaimana direktori disusun, temukan ".." & "yang tersembunyi." direktori & dari sana dapat muncul dengan cara yang lebih efisien untuk katalog & mencari direktori.

Untuk sumber daya win32, kunjungi http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

pengguna14321
sumber