Win32 API의 진화


11

Windows 32 API는 시간이 지남에 따라 많이 바뀌 었습니까? 1998 년 Charles Charlesz 책 "Programming Windows, 5th Edition"에 여전히 관련 정보가 포함되어 있습니까?

최근에 Windows 32 API에 추가 된 대표적인 예는 무엇입니까?

답변:


4

Windows Vista의 새로운 스레드 풀 API는 WinAPI가 어떻게 발전했는지에 대한 간단한 예를 위해 여러 스레드 프로그램을 잘 작성하여 크게 향상 시켰습니다. 그러나 호환성을 유지해야하는 필요성은 Windows API의 기본 사항을 동일하게 유지하기위한 원동력이되었으며 CreateWindowEx와 같은 Ex 함수의 우세와 같은 비 이상적인 결과를 가져 왔습니다. 16 비트 프로그램과 호환되는 64 비트 Windows에 대해 컴파일 가능한 기능이 여전히 있습니다.

API가 변경되지 않았기 때문에 1998 년에 일반적으로 사용되었던 기능을 수행하는 WinAPI 기반 프로그램을 작성하려는 경우이 책은 여전히 ​​유용합니다. 물론, 1998 년 이후의 책이 표준 C ++에 대해 거의 확실하게 쓰여졌 기 때문에, 원어의 모범 사례는 특히 C 나 C ++ 용으로 작성된 경우에 앞서 나올 수 있습니다.

또한 동일한 API가 Windows 32 및 Windows 64를 모두 제어하므로 올바른 참조는 Windows 32 API가 아닌 Windows API입니다.


3

Programming Windows 가 여전히 유용하다는 것을 알았습니다 . 이전 버전과의 호환성에 대한 Microsoft의 강조 덕분에 모든 핵심 항목 (창 핸들, 메시지, GDI 등)은 여전히 ​​관련성이있는 것으로 보이며 Petzold에서 잘 다루고 있습니다. (무슨 일이 너무 많이 바뀌면 기존 Windows 프로그램이 너무 많이 손상 될 수 있으며, 기존 Windows 프로그램의 수는 시장에서 Windows의 이점 중 큰 부분입니다.)

Setup API , Thread Pool APIGDI + 와 같은 특정 새 API 가 있으며 Vista 및 7 UAC 환경에서 작업하는 것과 같은 새로운 주제가 있습니다. Petzold가 다루지 않는 몇 가지 개별적인 새로운 기능도 있지만 필요에 따라 MSDN에서 새로운 주제를 쉽게 찾을 수 있습니다. 프로그래밍 Windows 는 Windows 프로그래밍의 큰 부분이 될 수있는 COM도 다루지 않습니다.

Petzold가 다루는 API는 모두 저수준 및 C 기반입니다. (GDI +와 같은 몇 가지 새로운 API와 COM 지향의 일부는 객체 지향적입니다.) 사실상 모든 최신 개발은 객체 지향적이며 종종 .NET 또는 Qt 또는 Delphi의 VCL과 같은 프레임 워크를 사용하므로 프로그래밍 윈도우 에서 예제 코드와 같은 완전한 애플리케이션을 작성하는 경우는 거의 없다 . 그러나 여전히 어려운 일을 설명하는 데 좋습니다.

나는 오래 전에 둘러 보았고 더 새로운 API 참조를 찾을 수 없었습니다. 나는 이것이 현재 Windows API의 크기 때문이라고 생각합니다. Programming Windows, 5th Edition의 길이 는 이미 1500 페이지에 달합니다. 나는 아직 읽지 않았지만 Programming Windows에 대한 몇 가지 흥미로운 보충제를 발견했습니다 .

  • Don Box의 Essential COM -Vista의 새로운 API 중 일부는 COM 기반이며 Petzold는 COM을 다루지 않습니다.
  • Johnson M. Hart의 Windows System Programming 은 Petzold가 잘 다루는 GUI 및 GDI 항목을 완전히 건너 뛰는 것처럼 보이지만 최신 멀티 스레딩, IPC 등의 현대적인 접근 방식에 대해서는 훨씬 자세히 설명합니다.
  • Russonovich, Solomon 및 Ionescu의 Windows Internals -API 및 Windows가 어떻게 작동하는지에 대해 자세히 설명하지 않습니다. Russonovich는 Microsoft 내부 또는 외부의 누구보다이 사실에 대해 더 많이 알고있을 것입니다.

0

Windows API는 수년에 걸쳐 변경되었습니다. 완전히 새로운 기능 세트 (예 : TaskDialog 및 제품군)와 기존 기능을 대체합니다 (예 : CreateWindowEx ).

최신 참조를 참조하시기 바랍니다.


어떤 제안이 있습니까?
gablin

슬프게도, 아니요. 저는 실제로 C / C ++ / WinAPI 프로그래머가 아닙니다. 나는 이러한 새로운 기능의 존재를 알고 있습니다.
Powerlord

당신은 20 년 된 OS가 그 기간 동안 완전히 새로운 기능을 추가했다는 것을 의미합니까?! 마음 = 날

0

작업 스케줄러도 새롭고 많은 새로운 개체 및 인터페이스가 추가되었습니다. 작업 스케줄러 2.0 이전에는 작업 예약과 관련하여 약 5 개의 개체가있었습니다. 2.0 (Vista가 나왔을 때 소개됨)에는 20 개가 있고, 농담도없고 20 개가 있습니다. 이것은 win32 프로그래밍에 대해서는 그리 좋지 않은 것이지만 그렇게 나쁘지는 않습니다.

win32의 프로그래밍을 좋아합니다 .Windows 및 다른 OS가 어떻게 낮은 수준에서 작동하는지에 대해 많은 것을 배우고 더 나은 프로그래머가되도록합니다. 파이썬으로 프로그래밍하면 디렉토리 구성 방법에 대해 배우지 못합니다 os.listdir(""). 그러나 win32에서 FindFirstFile()& FindNextFile를 사용 하면 디렉토리가 구성되는 방법을 발견하고 숨겨진 ".."& "."를 발견하십시오. 디렉토리에서 디렉토리를 카탈로그 및 검색하는보다 효율적인 방법을 제시 할 수 있습니다.

win32 리소스는 http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics 로 이동하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.