Sự phát triển của API Win32 [đã đóng]


11

API Windows 32 đã thay đổi nhiều theo thời gian chưa? Cuốn sách Charles Petzold "Lập trình Windows, Phiên bản thứ 5" từ năm 1998 vẫn chứa thông tin liên quan, hay hầu hết là lỗi thời / lỗi thời?

Một số ví dụ nổi bật về các bổ sung gần đây cho API Windows 32 (nếu có) là gì?

Câu trả lời:


4

API nhóm chủ đề mới trong Windows Vista là một cải tiến nghiêm trọng và hỗ trợ cho nhiều chương trình luồng được viết tốt, cho một ví dụ đơn giản về cách WinAPI đã phát triển. Tuy nhiên, nhu cầu duy trì khả năng tương thích là yếu tố thúc đẩy để giữ cho các khái niệm cơ bản của API Windows giống nhau và dẫn đến một số điều không lý tưởng, như ưu thế của các hàm Ex như CreatWindowEx. Vẫn có các chức năng có thể tương thích với Windows 64 bit để tương thích với các chương trình 16 bit.

Cuốn sách đó vẫn sẽ được sử dụng nếu bạn muốn viết các chương trình dựa trên WinAPI thực hiện các chức năng phổ biến vào năm 1998, vì không chắc API đã thay đổi. Tất nhiên, các thực tiễn tốt nhất trong ngôn ngữ gốc có thể sẽ được phát triển trước, đặc biệt là nếu cuốn sách được viết cho C hoặc C ++, vì một cuốn sách từ năm 1998 gần như chắc chắn được viết chống lại C ++ tiền chuẩn.

Ngoài ra, tham chiếu chính xác là API Windows, không phải API Windows 32, vì cùng một API chi phối cả Windows 32 và Windows 64.


3

Tôi đã tìm thấy Lập trình Windows vẫn hữu ích. Nhờ sự nhấn mạnh của Microsoft về khả năng tương thích ngược, tất cả các nội dung cốt lõi (tay cầm cửa sổ, tin nhắn, GDI, v.v.) dường như vẫn có liên quan và được bảo vệ tốt trong Petzold. (Nếu bất cứ điều gì thay đổi quá mạnh mẽ, nó sẽ phá vỡ quá nhiều chương trình Windows hiện có và số lượng lớn các chương trình Windows hiện tại là một phần lợi thế lớn của Windows trên thị trường.)

Có các API mới cụ thể, như API thiết lập , API nhóm luồngGDI + và có các chủ đề mới như hoạt động trong bối cảnh của UAC của Vista và 7. Ngoài ra còn có một số chức năng mới riêng lẻ mà Petzold không đảm bảo, nhưng đủ dễ để tìm kiếm các chủ đề mới hơn trên MSDN khi cần. Lập trình Windows cũng không bao gồm COM, có thể là một phần quan trọng của lập trình Windows.

Hãy nhớ rằng API mà Petzold bao gồm tất cả đều ở cấp độ thấp và dựa trên C. (Có một số API mới hơn, như GDI + và một số công cụ COM, hướng đối tượng.) Hầu như mọi phát triển hiện đại sẽ hướng đối tượng và thường sẽ sử dụng khung như .NET hoặc Qt hoặc Delphi's Sẽ hiếm khi viết các ứng dụng hoàn chỉnh trông giống như mã ví dụ trong Lập trình Windows ; tuy nhiên, vẫn còn tuyệt vời để giải thích những gì đang diễn ra dưới mui xe.

Tôi đã xem xét một lúc trước và không thể tìm thấy bất kỳ tài liệu tham khảo API mới hơn. Tôi nghi ngờ điều này là do kích thước tuyệt đối của các API Windows hiện tại; Lập trình Windows, Phiên bản thứ 5 đã dài gần 1500 trang, một cuốn sách bao gồm mọi thứ mới sẽ quá lớn. Tôi đã tìm thấy một vài bổ sung trông thú vị cho Lập trình Windows , mặc dù tôi chưa đọc chúng:

  • COM thiết yếu , bởi Don Box - Một số API mới của Vista dựa trên COM và Petzold không bao gồm COM.
  • Lập trình hệ thống Windows , bởi Johnson M. Hart - dường như hoàn toàn bỏ qua các công cụ GUI và GDI mà Petzold trình bày rất tốt, nhưng nó có nhiều chi tiết hơn về các phương pháp tiếp cận hiện đại hàng đầu, IPC, v.v.
  • Windows Internals , bởi Russonovich, Solomon và Ionescu - ít nói về API và nhiều hơn về cách Windows hoạt động dưới mui xe. Russonovich có thể biết nhiều về điều này hơn bất kỳ ai trong hoặc ngoài Microsoft.

0

API Windows đã thay đổi qua nhiều năm. Nó đã thêm các bộ chức năng hoàn toàn mới (ví dụ: TaskDialog và gia đình) và thay thế cho các chức năng hiện có (ví dụ: CreateWindowEx ).

Tôi khuyên bạn nên tham khảo một tài liệu tham khảo mới hơn.


Có bất cứ đề nghị?
gablin

Đáng buồn thay, không ... Tôi không thực sự là một lập trình viên C / C ++ / WinAPI. Tôi chỉ biết sự tồn tại của các chức năng mới hơn.
Powerlord

Bạn muốn nói với tôi rằng một hệ điều hành 20 năm tuổi đã thêm toàn bộ các chức năng mới trong khoảng thời gian đó?! tâm trí = thổi
MarcusJ

0

Trình lập lịch tác vụ cũng mới, rất nhiều đối tượng và giao diện mới đã được thêm vào. Trước khi lập lịch tác vụ 2.0, có khoảng 5 đối tượng liên quan đến lập lịch tác vụ. Trong 2.0 (được giới thiệu khi Vista ra mắt), có 20, không đùa, 20. Đây là một trong những điều không tuyệt vời về lập trình win32 nhưng nó không tệ.

Tôi thích lập trình trong win32, bạn học được rất nhiều về cách Windows và các hệ điều hành khác hoạt động ở mức thấp hơn và nó khiến bạn trở thành một lập trình viên tốt hơn tôi tin. Nếu bạn lập trình bằng python, bạn không tìm hiểu về cách tổ chức các thư mục, chỉ cần sử dụng os.listdir(""). Nhưng khi sử dụng FindFirstFile()& FindNextFiletrong win32, bạn khám phá cách tổ chức các thư mục, hãy khám phá ẩn ".." & "." thư mục & từ đó có thể đưa ra những cách hiệu quả hơn để lập danh mục và tìm kiếm thư mục.

Để có tài nguyên win32, hãy truy cập http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.