Windows API

Windows API

Windows API(비공식 WinAPI)는 Microsoft Windows 운영 체제에서 사용할 수 있는 Microsoft의 핵심 애플리케이션 프로그래밍 인터페이스(API) 세트입니다.Windows API라는 이름은 자신의 이름(를 들어 Win32 API)으로 자주 언급되는 여러 다른 플랫폼 구현을 통칭합니다.버전 섹션을 참조하십시오.거의 모든 Windows 프로그램은 Windows API와 상호 작용합니다.Windows NT 계열의 운영 체제에서는 소수의 프로그램(Windows 시작 프로세스 초기에 시작된 프로그램 등)이 Native [1]API를 사용합니다.

개발자 지원은 소프트웨어 개발 키트인 Microsoft Windows SDK의 형태로 제공됩니다.Windows API 및 관련 Windows 인터페이스를 기반으로 소프트웨어를 구축하는 데 필요한 문서와 도구를 제공합니다.

Windows API(Win32)는 주로 프로그래밍 언어[2] C에 초점을 맞추고 있습니다.그것은, 그 문서 최신 버전에서, 그 언어와 데이터 구조가 그 언어로 기술되어 있기 때문입니다.단, API는 콜 및 콜백에 대한 소정의 호출 규칙과 함께 (잘 정의된) 저레벨 데이터 구조를 처리할 수 있는 프로그래밍 언어 컴파일러 또는 어셈블러에 의해 사용될 수 있다.마찬가지로 API 기능의 내부 구현은 역사적으로 [a]여러 언어로 개발되어 왔습니다.C가 객체 지향 프로그래밍 언어가 아님에도 불구하고 Windows API와 Windows는 둘 다 역사적으로 객체 지향으로 기술되어 왔습니다.오브젝트 지향의 구조를 보다 명확하게 하는 오브젝트 지향 언어(Microsoft Foundation Class Library(MFC; Microsoft Foundation Class Library), Visual Component Library(VCL; 비주얼 컴포넌트 라이브러리), GDI+ 등)를 위한 래퍼 클래스 및 확장도 많이 있습니다.예를 들어 Windows 8은 Windows API와 WinRT API를 제공합니다.이 API는 C++[3]로 구현되어 [3]설계상 객체 지향입니다.

개요

Windows API에서 제공하는 기능은 8개의 카테고리로 [4]분류할 수 있습니다.

기본 서비스
[5] Windows 시스템에서 사용할 수 있는 기본 리소스에 대한 액세스를 제공합니다.파일 시스템, 디바이스, 프로세스, 스레드, 오류 처리 이 포함됩니다.이러한 기능은 16비트 Windows 및 32비트 및 64비트 Windows 의 파일 또는 에 있습니다.이러한 파일은 모든 버전의 Windows 폴더에 있습니다.
고급 서비스
커널 이외의 기능에 대한 액세스를 제공합니다.Windows 레지스트리, 시스템 셧다운/재시작(또는 중단), Windows 서비스 시작/정지/작성, 사용자 계정 관리 등이 포함됩니다.이러한 기능은 32비트 Windows 및 Windows에 상주합니다.
그래픽스 디바이스 인터페이스
[6] 모니터, 프린터기타 출력 장치에 그래픽 콘텐츠를 출력하는 기능을 제공합니다.16비트 Windows 및 32비트 Windows 사용자 모드에 있습니다.커널 모드 GDI 지원은 다음과 같습니다.win32k.sys그래픽 [7]드라이버와 직접 통신합니다.
사용자 인터페이스
[8] 화면 창과 버튼, 스크롤바가장 기본적인 컨트롤, 마우스 및 키보드 입력 수신 및 Windows의 그래픽 사용자 인터페이스(GUI) 부분과 관련된 기타 기능을 만들고 관리하는 기능을 제공합니다.이 기능 유닛은 16비트 Windows 및 32비트 Windows에 있습니다.Windows XP 버전 이후 기본 컨트롤은 공통 컨트롤(Common Control Library)과 함께 에 있습니다.
[ Common ]
[9] 응용 프로그램에 파일 열기 및 저장, 색상 및 글꼴 선택 등을 위한 표준 대화 상자를 제공합니다.라이브러리는 16비트 Windows 및 32비트 Windows에 있는 파일에 있습니다.API의 [User Interface]카테고리에 그룹화되어 있습니다.
공통 제어 라이브러리
[10] 운영 체제에서 제공하는 일부 고급 제어 기능에 대한 응용 프로그램 액세스를 제공합니다.여기에는 상태 표시줄, 진행 표시줄, 도구 모음 이 포함됩니다.라이브러리는 16비트 Windows 및 32비트 Windows에서 호출되는 DLL(Dynamic Link Library) 파일에 있습니다.API의 [User Interface]카테고리에 그룹화되어 있습니다.
윈도 셸
[11][12] Windows API의 컴포넌트를 사용하면 응용 프로그램은 운영체제셸에서 제공하는 기능에 액세스하여 이를 변경하고 강화할 수 있습니다.구성 요소는 16비트 윈도우즈 및 32비트 윈도우즈에 있습니다.Shell Lightweight 유틸리티 함수는 에 있습니다.API의 [User Interface]카테고리에 그룹화되어 있습니다.
네트워크 서비스
[13] 운영 체제의 다양한 네트워킹 기능에 대한 액세스를 제공합니다.그 서브 컴포넌트에는 NetB가 포함됩니다.IOS, Winsock, NetDDE, Remote Procedure Call(RPC; 리모트 프로시저 콜) 등.이 구성 요소는 32비트 윈도우즈에 있습니다.

Internet Explorer(IE) 웹 브라우저는 응용 프로그램에서 자주 사용되는 많은 API를 표시하므로 Windows API의 일부로 간주할 수 있습니다.IE는 Windows 95 OSR2 이후 운영체제에 포함되어 있으며 Windows [14]98 이후 응용 프로그램에 웹 관련 서비스를 제공하고 있습니다.구체적으로는 다음 기능을 제공하기 위해 사용됩니다.

  • 내장형 웹 브라우저 컨트롤.및 에 기재되어 있습니다.
  • 에서 유지되는 URL 모니커 서비스.COM 개체를 응용 프로그램에 제공하여 URL을 해결합니다.응용 프로그램은 다른 사용자가 사용할 수 있도록 자체 URL 핸들러를 제공할 수도 있습니다.
  • 시스템 전체의 프록시 설정(winnet.dll)도 고려하다HTTP 클라이언트라이브러리.다만, Microsoft 에서는, 보다 작고, 일부의 애플리케이션에 적합한 HTTP 클라이언트라이브러리 winhttp.dll 를 추가했습니다.
  • 다국어 및 국제 텍스트 지원을 지원하는 라이브러리(mlang.dll).
  • 이미지 필터 컴포넌트 세트인 DirectX Transforms.
  • XML 지원(에서 유지되는 MSXML 컴포넌트).
  • Windows 주소록에 액세스합니다.

멀티미디어

기존의 Windows 멀티미디어 API는 winmm.dll에 배치되어 있으며 사운드 파일 재생, MIDI 메시지 송수신, 조이스틱 액세스 및 Windows 3.0에서 개별적으로 사용 가능한 Multimedia Extensions에서 파생된 Windows의 MCI 서브시스템의 다른 모든 기능을 지원하는 기능을 포함하고 있습니다.운영체제는 Windows 3.1 이후 mmsystem.dll에 있습니다.

이와는 별도로 Microsoft는 Windows 95 OSR2 이후 모든 Windows 버전의 일부로 DirectX API를 제공하고 있습니다.이것은 다음과 같은 그래픽과 게임 서비스의 느슨한 관련 세트입니다.

  • 하드웨어 액셀러레이션 2D 벡터 그래픽스용 Direct2D.
  • 하드웨어 액셀러레이션 3D 그래픽스용 Direct3D.
  • DirectSound는 하드웨어 액셀러레이션이 낮은 사운드 카드 액세스에 적합합니다.
  • DirectInput을 통해 조이스틱이나 게임패드 등의 입력 디바이스와 통신할 수 있습니다.
  • 멀티플레이 게임 인프라스트럭처로서의 DirectPlay.이 컴포넌트는 DirectX 9부터 폐지되어 Microsoft에서는 게임 개발에 사용을 권장하지 않습니다.
  • DirectX 이전 버전의 2D 그래픽용 DirectDraw는 현재 사용되지 않고 Direct2D로 대체되었습니다.
  • Windows 3.x 버전용으로 작성된 16비트 게임의 2D 그래픽용 WinG.Windows 95 릴리스에서는 권장되지 않습니다.

또한 Microsoft는 미디어 인코딩 및 재생을 위한 몇 가지 API를 제공합니다.

  • DirectShow: 범용 멀티미디어 파이프라인을 구축하고 실행합니다.이는 GStreamer 프레임워크와 유사하며 게임 내 비디오를 렌더링하고 미디어 플레이어를 만드는 데 자주 사용됩니다(Windows Media Player는 이를 기반으로 합니다).DirectShow는 더 이상 게임 개발에 권장되지 않습니다.
  • Media Foundation은 DirectShow를 대체하는 새로운 디지털 미디어 API입니다.

프로그램 상호 작용

Windows API는 대부분 운영 체제와 애플리케이션 간의 상호 작용을 위해 설계되었습니다.서로 다른 Windows 애플리케이션 간의 통신을 위해 마이크로소프트는 메인 Windows API와 함께 일련의 기술을 개발했습니다.이것은 처음에 OLE(Object Linking and Embedding)로 대체된 Dynamic Data Exchange(DDE; 동적 데이터 교환)에서 시작되었으며, 이후 Component Object Model(COM; 컴포넌트 객체 모델), Automation Objects, ActiveX 컨트롤 및로 대체되었습니다.NET 프레임워크이러한 테크놀로지에 항상 명확한 차이가 있는 것은 아니며, 중복되는 부분이 많습니다.

용어의 다양성은 기본적으로 소프트웨어 개발의 특정 측면에 관련된 소프트웨어 메커니즘을 그룹화한 결과입니다.자동화는 애플리케이션 또는 컴포넌트의 기능(애플리케이션프로그래밍 인터페이스(API)로서)을 내보내는 것과 관련되므로 사용자만 제어하는 것이 아니라 다른 응용 프로그램에서 제어할 수 있습니다.NET은 다양한 JIT(Just-In-Time) 컴파일 언어로 작성된 데스크톱 및 웹 애플리케이션을 개발하기 위한 자체적인 일반적인 방법 및 기술입니다.

Windows.pas는 Windows 고유의 API 선언을 포함하는 Pascal/Delphi 장치입니다.C에서 [15]사용되는 windows.h와 동등한 Pascal입니다.

래퍼 라이브러리

Microsoft는 Windows API의 보다 낮은 수준의 기능 중 일부를 넘겨받아 응용 프로그램이 보다 추상적인 방식으로 API와 상호 작용할 수 있도록 다양한 래퍼를 개발했습니다.Microsoft Foundation Class Library(MFC; Microsoft Foundation Class Library)는 Windows API 기능을 C++ 클래스로 래핑하여 보다 객체 지향적인 방법으로 API와 상호 작용할 수 있습니다.Active Template Library(ATL; 액티브템플릿 라이브러리)는 COM용 템플릿 지향 래퍼입니다.Windows Template Library(WTL; Windows 템플릿 라이브러리)는 ATL의 확장으로 개발되었으며 MFC의 소형 대체품으로 개발되었습니다.

대부분의 Windows용 응용 프로그램 프레임워크(적어도 부분)는 Windows API를 래핑합니다.그 때문에, 「 NET Framework와 Java는 마찬가지로 Windows의 다른 프로그래밍 언어도 래퍼 라이브러리입니다(또는 포함).

역사

Windows API는 항상 Windows 시스템의 기본 구조의 대부분을 프로그래머에게 노출시켜 왔습니다.이를 통해 애플리케이션에 대한 유연성과 처리 능력이 크게 향상될 뿐만 아니라 애플리케이션이 그래픽 사용자 인터페이스와 관련된 다양한 저레벨(때로는 지루한) 작업을 처리하는 방법에 대한 책임도 커졌습니다.

예를 들어, 초보 C 프로그래머는 종종 간단한 "hello world"를 첫 번째 과제로 씁니다.프로그램의 작동 부분은 메인 서브루틴 내에서 단일 printf 라인일 뿐입니다.표준 I/O 라이브러리에 링크하는 데 드는 오버헤드도 다음과 같습니다.

#실패하다 <stdio.h>  인트 주된(무효) {     인쇄물(안녕, 월드!\n"); } 

Windows 버전은 여전히 하나의 코드 라인에 불과했지만, 훨씬 더 많은 오버헤드가 필요했습니다.Windows API의 프로그래밍에 관한 책을 쓴 찰스 페트졸드는 다음과 같이 말했습니다.Windows 1.0 SDK의 원래 hello 월드 프로그램은 약간 스캔들이었습니다.HELLO.C는 약 150줄이었고, HELLO.C는 약 150줄이었습니다.RC 리소스 스크립트에는 20줄 정도의 행이 더 있었습니다.(...) 베테랑 프로그래머들은 Windows의 hello-world 프로그램을 [16]접했을 때 종종 공포에 떨거나 웃으며 몸을 웅크리고 있었습니다.

오랜 세월 동안 Windows 시스템에 다양한 변경과 추가가 이루어졌고,[17] Windows API는 이를 반영하여 변화하고 성장했습니다.Windows API 1.0450 미만의 함수 호출을 지원했지만 최신 버전의 Windows API는 수천 개의 함수 호출을 지원했습니다.그러나 일반적으로 인터페이스는 상당히 일관성이 있어 최신 Windows [18]API에 익숙한 프로그래머에게는 오래된 Windows 1.0 응용 프로그램이 여전히 친숙하게 보일 것입니다.

Microsoft는 하위 호환성을 유지하기 위해 노력해 왔습니다.이를 위해 Microsoft는 새로운 버전의 Windows를 개발할 때 문서화되어 있지 않거나 권장되지 않는 방법으로 이전 버전을 사용한 서드파티 소프트웨어와의 호환성을 허용하는 회피책을 구현하기도 했습니다.Windows API를 다루는 마이크로소프트 개발자인 Raymond Chen은 다음과 같이 말했습니다. "저는 아마도 몇 달 동안 앱이 하는 나쁜 일과 앱이 (종종 자신도 모르게) 다시 작동시키기 위해 우리가 해야 하는 일에 대해서만 쓸 수 있을 것입니다.그 때문에, OS 의 업그레이드중에 Microsoft 가 애플리케이션을 악의적으로 망가뜨렸다고 비난할 때, 저는 특히 화가 납니다.Windows 95에서 실행할 수 없는 어플리케이션이 있다면 저는 그것을 개인적인 [19]장애로 받아들였습니다.

Windows API의 가장 큰 변경 중 하나는 Win16(Windows 3.1 이전 버전)에서 Win32(Windows NT 및 Windows 95 이상)로 이행한 것입니다.Win32는 원래 Windows NT 3.1과 함께 도입되었고 Win32s는 Windows 95 이전에 Win32 서브셋을 사용할 수 있었지만 Win32에 대한 응용 프로그램의 광범위한 포팅이 시작된 것은 Windows 95가 되어서였다.Windows 95 에서는, Microsoft 내외의 개발자를 위해서, 32비트 코드의 16비트 코드(대부분의 Win16 API)를 호출할 수 있는 복잡한 API 스킴이 사용되었습니다.플랫 트렁크에서는 32비트 코드를 16비트 라이브러리로 호출할 수 있었습니다.또한 윈도95 라이브러리 내에서 광범위하게 사용되어 OS 전체를 Win32로 일괄 포팅하는 것을 피할 수 있었습니다.Windows NT에서 OS는 16비트 애플리케이션과의 호환성을 제외한 순수 32비트이며 Windows 95와 마찬가지로 Win16에서 Win32로 사용할 수 있는 것은 일반적인 thunk뿐입니다.Platform SDK는 컴파일러와 함께 출하되어 이러한 thunk에 필요한 코드를 생성할 수 있습니다.64비트 Windows 버전에서는 WoW64를 통해 32비트 애플리케이션을 실행할 수도 있습니다.OS 드라이브의 Windows 폴더에 있는 SysWOW64 폴더에는 32비트 [citation needed]응용 프로그램을 지원하는 여러 도구가 포함되어 있습니다.

버전

Microsoft Windows 의 거의 모든 새로운 버전에서는, Windows API [20]에의 독자적인 추가와 변경이 도입되고 있습니다.그러나 API의 이름은 서로 다른 Windows 버전 간에 일관성이 유지되었으며 이름 변경은 Windows의 주요 아키텍처 및 플랫폼 변경으로 제한되었습니다.마이크로소프트는 결국 현재의 Win32 API 패밀리의 이름을 Windows API로 변경해 과거 및 미래의 API [4]버전에 대한 캐치올 용어로 만들었습니다.

  • Win16은 최초의 16비트 버전Microsoft Windows용 API입니다.이들은 처음에는 단순히 Windows API로 불리다가 나중에 새로운 32비트 버전의 Windows API와 구별하기 위해 Win16으로 이름이 변경되었습니다.Win16 API의 기능은 주로 OS의 핵심 파일인 kernel.exe(또는 krnl286.exe 또는 krnl386.exe), user.exegdi.exe에 있습니다.파일 확장자에도 불구하고 실제로는 다이내믹링크 라이브러리입니다.
  • Win32는 95 이후 버전의 Windows용 32비트 API입니다.API는 Win16과 마찬가지로 시스템 DLL에 구현된 함수로 구성됩니다.Win32의 코어 DLL은 kernel32.dll, user32.dllgdi32.dll입니다.Win32는 Windows NT에서 도입되었습니다.Windows 95 에 부속된 Win32 의 버전은, 처음에는 Win32c 라고 불리며, c 는 호환성을 의미합니다.이 용어는 나중에 마이크로소프트에 의해 Win32로 대체되었습니다.
  • Win32s는 이러한 시스템에 Win32 API의 서브셋을 구현한 Microsoft Windows 3.1x 패밀리의 확장입니다."s"는 "subset"을 나타냅니다.
  • Win64는 Windows 아키텍처64비트 플랫폼에 구현된 API의 변형입니다(2021년 기준, x86-64AArch64).[b][21][22]32비트 및 64비트 버전의 애플리케이션은 하나의 코드베이스에서 컴파일할 수 있습니다.단, 일부 오래된 API는 폐지되고 Win32에서 이미 폐지된 API는 삭제되었습니다.모든 메모리 포인터는 기본적으로 64비트(LLP64 모델)이므로 소스 코드가 64비트 포인터 산술과의 호환성을 확인하고 [23]필요에 따라 다시 작성해야 합니다.
  • WinCEWindows CE 운영체제시스템용 Windows API 구현입니다.

기타 구현

Wine 프로젝트Linux 커널 API와 Windows API용으로 작성된 프로그램 에 Unix와 유사한 플랫폼을 위한 Win32 API 호환성 계층을 제공합니다.ReactOS는 한 걸음 더 나아가 완전한 Windows 운영체제를 구현하는 것을 목표로 하고 있으며, 코드 재사용과 호환성을 촉진하기 위해 와인 프로젝트와 긴밀히 협력하고 있습니다.DosWin32HX DOS Extender는 DOS 명령줄에서 간단한 Windows 프로그램을 실행할 수 있도록 Windows API를 에뮬레이트하는 다른 프로젝트입니다.Odin은 OS/2에서 Win32를 에뮬레이트하는 프로젝트로, Microsoft 코드를 기반으로 한 원래의 Win-OS/2 에뮬레이션을 대체합니다.다른 작은 구현으로는 DOS에서 Win16 API의 서브셋을 구현하기 위한 MEWEL 아연 라이브러리가 있습니다(플랫폼에 의존하지 않는 GUI 라이브러리 목록 참조).

Windows Interface Source Environment(WISE)는 개발자가 Unix Macintosh 플랫폼에서 Windows 기반 애플리케이션을 재컴파일 및 실행할 수 있도록 한 Microsoft의 라이센스 프로그램입니다.WISE SDK는 이러한 [24]플랫폼에서 실행할 수 있는 Windows API의 에뮬레이터를 기반으로 했습니다.

표준화를 향한 대처에는 Win16용 Sun의 Public Windows Interface(PWI; 퍼블릭 Windows 인터페이스)가 포함되어 있습니다(참조 항목:Sun Windows Application Binary Interface(Wabi), Will Software의 APIW for Windows(Windows용 애플리케이션 프로그래밍 인터페이스)는 Win16 및 Win32를 지원합니다(참조 항목:Willows TWIN) 및 ECMA-234가 Windows API 바인딩을 표준화하려고 했습니다.

컴파일러 지원

Windows API 를 사용하는 소프트웨어를 개발하려면 , 컴파일러가 상기의 Microsoft 고유의 DLL 를 사용할 수 있을 필요가 있습니다(COM 오브젝트는 Win32 밖에 있어 특정의 vtable 레이아웃을 상정하고 있습니다).컴파일러는 내부 API 함수 이름을 노출하는 헤더 파일을 처리하거나 이러한 파일을 제공해야 합니다.

언어 C++, Zortech(나중에 Symantec, 그 후 Digital Mars), Watcom Borland는 모두 Win16, Win32s 및 Win32에서 자주 사용되는 잘 알려진 상용 컴파일러를 생산했습니다.그 중 일부는 메모리 익스텐더를 제공하여 Win32 프로그램을 Microsoft의 재배포 가능한 Win32s DLL을 사용하여 Win16에서 실행할 수 있도록 했습니다.Zortech 컴파일러는 Microsoft가 C++ 컴파일러를 도입하기 전에 Windows 프로그래밍용으로 안정적이고 사용 가능한 최초의 C++ 컴파일러 중 하나였을 것입니다.

특정 클래스의 애플리케이션에서는 컴파일러 시스템이 인터페이스 기술 언어(IDL) 파일을 처리할 수도 있습니다.이러한 전제 조건(컴파일러, 툴, 라이브러리, 헤더)을 통칭해 Microsoft Platform SDK라고 부릅니다.이전에는 Microsoft Visual Studio와 Borland의 통합 개발 시스템이 이 기능을 제공할 수 있는 유일한 통합 개발 환경(IDE)이었습니다(단, SDK는 Microsoft Windows SDK for Windows 7 전체 IDE 스위트와 별도로 무료로 다운로드할 수 있습니다).NET Framework 4).

2016년 현재 MinGWCygwin 프로젝트는 또한 독립형 헤더 파일 세트를 사용하여 GNU 컴파일러 컬렉션(GCC)에 기반한 환경을 제공하여 Win32 고유의 DLL에 대한 링크를 단순화합니다.LCC-Win32는 Jacob Navia가 관리하는 C 컴파일러로 비상업적 사용을 위한 프리웨어입니다.Pelles C는 Pelle Orinius가 관리하는 프리웨어 C 컴파일러입니다.Free Pascal은 Windows API를 지원하는 자유 소프트웨어 Object Pascal 컴파일러입니다.MASM32 패키지는 Platform SDK에서 커스텀 또는 변환된 헤더와 라이브러리를 사용하여 Microsoft Macro Assembler(MASM)에서 Windows API를 지원하는 성숙한 프로젝트입니다.플랫 어셈블러 FASM을 사용하면 Linux에서 실행 중인 경우에도 외부 링커를 사용하지 않고도 윈도우즈 프로그램을 구축할 수 있습니다.

, Windows 고유의 컴파일러의 서포트는, SEH(Structured Exception Handling (SEH)이 시스템은 언어 고유의 예외 처리를 구현할 수 있는 기판을 제공하고 커널이 무효 포인터의 디레퍼런스나 스택 오버플로 등의 예외 조건을 애플리케이션에 통지하는 방법이라는 두 가지 목적을 제공합니다.Microsoft/Borland C++ 컴파일러는 Windows 95 및 NT에 도입되자마자 이 시스템을 사용할 수 있었지만, 실제 실장은 문서화되어 있지 않았기 때문에 와인 프로젝트와 무료 컴파일러를 위해 리버스 엔지니어링해야 했습니다.SEH는 예외 핸들러 프레임을 스택에 푸시한 후 스레드 로컬스토리지(스레드 환경 블록의 첫 번째 필드)에 저장된 링크 목록에 추가하는 것을 기반으로 합니다.예외가 발생하면 커널 및 기본 라이브러리는 핸들러 및 필터를 실행하는 스택을 언인드합니다.최종적으로 응용 프로그램에서 처리되지 않은 모든 예외는 기본 백스톱 핸들러에 의해 처리되고 Windows 공통 크래시 대화상자가 나타납니다.

「 」를 참조해 주세요.

메모들

  1. ^ Pascal과 x86 어셈블리는 C가 우세해지기 전에 Windows API의 이전 버전에서 많이 사용되었습니다.이에 대해 API 함수는 Pascal 호출 규칙을 사용하여 호출 후 푸시된 파라미터에서 스택을 복원합니다(단, 기본적으로는 대부분의 C 컴파일러가 그러하듯이 오른쪽에서 왼쪽으로 푸시된 파라미터가 예상됩니다).
  2. ^ 릴리스된 64비트 버전에는 Windows XP Professional x64 Edition 및 Windows Server 2003 x64 Edition, x86-64(AMD64) 플랫폼 상의 Windows Vista 및 Windows Server 2008, Windows 2000 Server Limited Edition, Windows XP 64비트 Edition, Windows Advanced Server 2003 for Itanium이 포함됩니다.IA-64 플랫폼 상에 있습니다.

레퍼런스

  1. ^ Russinovich, Mark (November 2006). "Inside Native Applications". Microsoft Docs. Retrieved April 12, 2022.
  2. ^ "Walkthrough: Create a traditional Windows Desktop application (C++)". Microsoft Docs. February 23, 2022.
  3. ^ a b Mayberry, Michael (2012). WinRT Revealed. New York City: Apress. p. 3. ISBN 978-1-4302-4585-8.
  4. ^ a b Microsoft 개발자 네트워크(2005년 7월).Windows API의 개요.2005년 8월 28일 취득.
  5. ^ Microsoft 개발자 네트워크(2005년 7월).기본 서비스2005년 8월 28일 취득.
  6. ^ Microsoft 개발자 네트워크(2005년 7월).그래픽스 디바이스 인터페이스.2005년 8월 28일 취득.
  7. ^ "G". Microsoft Developer Network. Retrieved 2009-01-28.
  8. ^ Microsoft 개발자 네트워크(2005년 7월).사용자 인터페이스2005년 8월 28일 취득.
  9. ^ Microsoft Developer Network (2005년).[ Common ]대화 상자 라이브러리2005년 9월 22일 취득.
  10. ^ Microsoft 개발자 네트워크(2005년 7월).공통 제어 라이브러리.2005년 8월 28일 취득.
  11. ^ Microsoft 개발자 네트워크(2005년 7월).Windows 쉘2005년 8월 28일 취득.
  12. ^ Microsoft Developer Network (2005년).셸 프로그래머 가이드2005년 8월 28일 취득.
  13. ^ Microsoft 개발자 네트워크(2005년 7월).네트워크 서비스2005년 8월 28일 취득.
  14. ^ Microsoft 개발자 네트워크 (2006년 1월)2006년 1월 22일 취득된 브라우저 프로그래밍재사용
  15. ^ Texeira, Steve and Xavier Pacheco (2002). Borland Delphi 6 Developer's Guide. Sams. p. 253. ISBN 0672321157.
  16. ^ Charles Petzold (2001년 12월).C#로 Microsoft Windows 프로그래밍.Microsoft Press.콘솔 너머, 47페이지.
  17. ^ XP에서 10으로의 Windows API 변경 상세 분석.2016년 9월 8일 취득.
  18. ^ 찰스 페트졸드(1998년 11월 11일).Windows 프로그래밍, Fifth EditionMicrosoft Press.APIs and Memory Models(API 및 메모리 모델), 9페이지.
  19. ^ Raymond Chen(2003년 10월 15일).BOZOSLIVEHERE와 TABTHE TECTOUTFORWIMPS는? 2022년 6월 29일 회수.
  20. ^ 이세란 프로젝트(1996-2001).Windows API 이력2005년 10월 7일 취득.
  21. ^ "Windows XP Professional x64 Edition home page". Microsoft.
  22. ^ "Microsoft 64-bit Computing Overview". Microsoft.
  23. ^ "MSDN: Getting Ready for 64-bit Windows". Microsoft.
  24. ^ WISE Wayback 머신에서 아카이브된 2008-03-30

외부 링크