Windows API๏ผˆใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใ‚บ ใ‚จใƒผใƒ”ใƒผใ‚ขใ‚ค๏ผ‰ใจใฏใ€Microsoft WindowsใฎAPIใฎใ“ใจใ€‚็‰นใซ32ใƒ“ใƒƒใƒˆใƒ—ใƒญใ‚ปใƒƒใ‚ตใงๅ‹•ไฝœใ™ใ‚‹Windows 95ไปฅ้™ใ‚„Windows NTใงๅˆฉ็”จใงใใ‚‹ใ‚‚ใฎใฏWin32 APIใจๅ‘ผใฐใ‚Œใ‚‹ใ€‚ใพใŸใ€ใใ‚Œใ‚‰ใฎWindowsใซใŠใ‘ใ‚‹Win32 APIใฎๅฎŸ่ฃ…ใ‚’Win32ใจๅ‘ผใถใ€‚

64ใƒ“ใƒƒใƒˆใƒ—ใƒญใ‚ปใƒƒใ‚ตๅ‘ใ‘ใฎWin64 APIใ‚‚ๅซใ‚ใ‚‹ๅ ดๅˆใฏใ€ŒWindows APIใ€ใจใ„ใ†ๅŒ…ๆ‹ฌ็š„ใชๅ็งฐใŒๆญฃ็ขบใ ใŒใ€ๆ…ฃ็ฟ’็š„ใซWin32ใจ่จ€ใˆใฐWin64ใ‚‚ๅซใ‚“ใงใ„ใ‚‹ใ“ใจใŒใ‚ใ‚‹[1]ใ€‚

ๆฆ‚่ฆ

็ทจ้›†

Windowsใ‚ชใƒšใƒฌใƒผใƒ†ใ‚ฃใƒณใ‚ฐใ‚ทใ‚นใƒ†ใƒ  (OS) ไธŠใงๅ‹•ไฝœใ™ใ‚‹ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใซใจใฃใฆใ€Windows APIใฏWindowsใฎๅ„ๆฉŸ่ƒฝใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใŸใ‚ใฎ็•Œ้ขใงใ‚ใ‚‹ใ€‚ใใฎใŸใ‚ใ€WindowsไธŠใงๅ‹•ไฝœใ™ใ‚‹ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ไฝœๆˆใงใใ‚‹ๆง˜ใ€…ใชใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ่จ€่ชžใƒป้–‹็™บ็’ฐๅขƒใซใŠใ„ใฆWindows APIใ‚’ไฝฟ็”จใ™ใ‚‹ๆ‰‹ๆฎตใŒๆไพ›ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚็‰นใซCใจC++ๅ‘ใ‘ใซใฏใ€Windows SDKใซใ‚ˆใ‚Šใ€<windows.h>ใ‚’ใฏใ˜ใ‚ใจใ™ใ‚‹ๅคšๆ•ฐใฎใƒ˜ใƒƒใƒ€ใƒผใƒ•ใ‚กใ‚คใƒซใŒๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚Microsoft Visual C++ใฎC/C++ใƒฉใƒณใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒ–ใƒฉใƒชใฎใ†ใกใ€OSใฎๆฉŸ่ƒฝใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใ‚‚ใฎใฏใ€ๅ†…้ƒจ็š„ใซWindows APIใ‚’็”จใ„ใฆๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใพใŸใ€ๅคšใใฎ้–‹็™บ็’ฐๅขƒใงใ€Windows APIใ‚’ๅŸบใซใ—ใŸใ€ใ‚ˆใ‚Š้ซ˜ๆฐดๆบ–ใฎใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใŒๆง‹็ฏ‰ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใ“ใ‚Œใ‚‰ใ‚’้€šใ˜ใฆใ€ใ™ในใฆใฎWindowsใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฏใ€็›ดๆŽฅ็š„ใพใŸใฏ้–“ๆŽฅ็š„ใซWindows APIใ‚’ไฝฟ็”จใ—ใฆใ„ใ‚‹ใ€‚

Windows APIใซๅฑžใ™ใ‚‹ๅ„APIใฏใ€ไธปใซDLLใซๅฎŸ่ฃ…ใ•ใ‚ŒใฆใŠใ‚Šใ€C่จ€่ชžๅฝขๅผ้–ขๆ•ฐใพใŸใฏCOMใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใจใ—ใฆๆฉŸ่ƒฝใŒๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚้–ขๆ•ฐใฎๅ‘ผๅ‡บ่ฆ็ด„ใฏWin32 (x86) ใฎๅ ดๅˆใซๅŽŸๅ‰‡ใจใ—ใฆstdcallใ‚’ๆŽก็”จใ™ใ‚‹[2][3]ใชใฉใ€็ตฑไธ€ใ•ใ‚ŒใŸใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใงๅคšๆ•ฐใฎใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ่จ€่ชžใ‹ใ‚‰ใฎไฝฟ็”จใ‚’ๅฎนๆ˜“ใชใ‚‚ใฎใจใ—ใฆใ„ใ‚‹ใ€‚

ๅˆ†้กž

็ทจ้›†

Windows APIใฎไธญๆ ธใจใชใ‚‹ๆฉŸ่ƒฝใฏKernelใ€Userใ€GDIใซๅˆ†ใ‘ใ‚‰ใ‚Œใ‚‹[4]ใ€‚ๅฝ“ๅˆใฏใ€ใใ‚Œใžใ‚ŒKERNEL.EXE (ใƒขใƒผใƒ‰ใซใ‚ˆใฃใฆใฏKRNL286.EXEใ€KRNL386.EXE)ใ€USER.EXEใ€GDI.EXEใซๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใŸใ€‚32ใƒ“ใƒƒใƒˆๅŒ–ใ•ใ‚Œใฆไปฅ้™ใฏใ€KERNEL32.DLLใ€USER32.DLLใ€GDI32.DLLใซๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚Windows 7ใฎๆ–ฐใ‚ซใƒผใƒใƒซใ€MinWinใงใฏใ€"Virtual DLL"ใฎไป•็ต„ใฟใŒๅฐŽๅ…ฅใ•ใ‚Œใ€ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นไบ’ๆ›ๆ€งใ‚’็ถญๆŒใ—ใŸใ†ใˆใงๅฎŸ่ฃ…ใฎๆ•ด็†ใŒ่กŒใชใ‚ใ‚Œใฆใ„ใ‚‹[5][6]ใ€‚

Kernel
ใƒ•ใ‚กใ‚คใƒซใ‚ทใ‚นใƒ†ใƒ ใ€ใƒ‡ใƒใ‚คใ‚นใ€ใƒ—ใƒญใ‚ปใ‚นใ€ใ‚นใƒฌใƒƒใƒ‰ใ€ใƒฌใ‚ธใ‚นใƒˆใƒชใ€ไพ‹ๅค–ๅ‡ฆ็†ใชใฉๅŸบ็›คใจใชใ‚‹ๆฉŸ่ƒฝ
User
ใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใฎๅ‡ฆ็†ใ€ใƒœใ‚ฟใƒณใ‚„ใ‚นใ‚ฏใƒญใƒผใƒซใƒใƒผใชใฉใจใ„ใฃใŸๅŸบๆœฌ็š„ใชใ‚ณใƒณใƒˆใƒญใƒผใƒซใ€ใƒžใ‚ฆใ‚นใƒปใ‚ญใƒผใƒœใƒผใƒ‰ๅ…ฅๅŠ›ใ€ใใฎไป–ใ‚ฐใƒฉใƒ•ใ‚ฃใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚น (GUI) ใซ้–ขใ‚ใ‚‹ๆฉŸ่ƒฝใ€‚
GDI
ใƒ‡ใ‚ฃใ‚นใƒ—ใƒฌใ‚คใƒปใƒ—ใƒชใƒณใ‚ฟใ‚’ใฏใ˜ใ‚ใจใ—ใŸๅ‡บๅŠ›่ฃ…็ฝฎใธใฎๆ็”ปๆฉŸ่ƒฝ

็พๅœจใงใฏใ€ใ“ใ‚Œใ ใ‘ใซ็•™ใพใ‚‰ใšใ€ๅคšๆ•ฐใฎDLLใ‹ใ‚‰็„กๆ•ฐใฎๆฉŸ่ƒฝใŒๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚็พๅœจใ€ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใงใฏๆฌกใฎใ‚ˆใ†ใซๅˆ†้กžใ—ใฆใ„ใ‚‹[7]ใ€‚

  • Administration and Management
  • Diagnostics
  • Graphics and Multimedia
  • Networking
  • Security
  • System Services
  • Windows User Interface

ใชใŠใ€ใ“ใฎๅˆ†้กžใงใฏใ€KernelใฏDiagnosticsใจSystem Servicesใใ—ใฆSecurityใซ่ทจใฃใฆๅฑžใ—ใ€UserใฏWindows User Interfaceใ€GDIใฏGraphics and Multimediaใซๅฑžใ™ใ‚‹ใ€‚

ใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใจใƒžใƒซใƒใƒกใƒ‡ใ‚ฃใ‚ข

็ทจ้›†

DirectX

็ทจ้›†

ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆใฏWindows 95/Windows NT 4ไปฅ้™ใ€ๅ…จใฆใฎWindowsใซDirectXใ‚’็”จๆ„ใ—ใฆใ„ใ‚‹ใ€‚DirectXใฏไธปใซใ‚ฒใƒผใƒ ใจใƒžใƒซใƒใƒกใƒ‡ใ‚ฃใ‚ขใฎใŸใ‚ใฎAPIใงใ‚ใ‚‹ใŒใ€Windows Vistaไปฅ้™ใฏDirectX GraphicsใŒGDIใซไปฃใ‚ใฃใฆOSใฎใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นๆ็”ปใฎๅŸบ็›คใจใ—ใฆๆ˜‡ๆ ผใ•ใ‚Œใฆใ„ใ‚‹ใ€‚Windows OSใฎใƒใƒผใ‚ธใƒงใƒณใ‚„ใ€ใ‚ตใƒผใƒ“ใ‚นใƒ‘ใƒƒใ‚ฏใ‚ใ‚‹ใ„ใฏๆฉŸ่ƒฝๆ›ดๆ–ฐใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎ้ฉ็”จ็Šถๆณใซใ‚ˆใฃใฆใ€ๅˆฉ็”จๅฏ่ƒฝใชAPIใ‚„APIใฎใƒใƒผใ‚ธใƒงใƒณใŒ็•ฐใชใ‚‹ใ€‚DirectX APIใฎใ†ใกใฎใ„ใใคใ‹ใฏใ€ใ‚ฒใƒผใƒ ใ‚ณใƒณใ‚ฝใƒผใƒซใงใ‚ใ‚‹Xboxใ‚ทใƒชใƒผใ‚บ๏ผˆXboxใ€Xbox 360ใ€Xbox Oneใชใฉ๏ผ‰ใจๅ…ฑ้€šใซใชใฃใฆใ„ใ‚‹ใ€‚ๅคงๅŠใฏใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ขใจใฎ้€šไฟกใ‚’ไปฒไป‹ใ™ใ‚‹APIใงใ‚ใ‚Šใ€ๅˆฉ็”จใ™ใ‚‹ใซใ‚ใŸใฃใฆใ€DirectXๅฏพๅฟœใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ขใŠใ‚ˆใณใƒ‡ใƒใ‚คใ‚นใƒ‰ใƒฉใ‚คใƒใƒผใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใŒๅฟ…่ฆใจใชใ‚‹ใ‚‚ใฎใ‚‚ๅคšใ„ใ€‚

Direct3D
3Dใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚ขใ‚ฏใ‚ปใƒฉใƒฌใƒผใ‚ฟใฎๆ“ไฝœใ€‚ๅฝ“ๅˆใฏWindowsใซใŠใ‘ใ‚‹OpenGLใฎไปฃๆ›ฟๆ‰‹ๆฎตใงใ‚‚ใ‚ใฃใŸใŒใ€Direct3D 12ใฏใ‚ˆใ‚Šใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ขใซ่ฟ‘ใ„ใƒญใƒผใƒฌใƒ™ใƒซAPIใจใชใ‚Šใ€็ซถๅˆใฏVulkanใงใ‚ใ‚‹ใ€‚
DirectDraw
2Dใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚ขใ‚ฏใ‚ปใƒฉใƒฌใƒผใ‚ฟใฎๆ“ไฝœใ€‚DirectX 8.0ไปฅ้™ใ€DirectDrawใฎๆฉŸ่ƒฝใฏDirect3DใซๅธๅŽใ•ใ‚ŒใŸใ€‚
DirectX Graphics
DirectX 8.0ไปฅ้™ใซๅฐŽๅ…ฅใ•ใ‚ŒใŸๅ็งฐใงใ€Direct3DใŠใ‚ˆใณDirectDrawใฎ็ตฑๅˆใ‚’ๆ„ๅ‘ณใ™ใ‚‹ใ‚‚ใฎใ ใฃใŸใŒ[8]ใ€DirectX 11ไปฅ้™ใฏDXGI/Direct3D/Direct2D/DirectWrite/DirectCompositionใฎ็ท็งฐใจใชใฃใฆใ„ใ‚‹[9]ใ€‚
DXGI (DirectX Graphics Infrastructure)
DirectX 10ไปฅ้™ใ€DirectX Graphicsใ‹ใ‚‰ๆฏ”่ผƒ็š„ๅค‰ๅŒ–ใฎ็ทฉใ‚„ใ‹ใช้ƒจๅˆ†ใฏDXGIใจใ—ใฆDirect3Dใ‹ใ‚‰ๅˆ†้›ขใ•ใ‚ŒใŸใ€‚
Direct2D
Direct3DไธŠใซๆง‹็ฏ‰ใ•ใ‚ŒใŸ้ซ˜ใƒฌใƒ™ใƒซ2Dๆ็”ป็”จAPIใ€‚GDI+ใฎ็ฝฎใๆ›ใˆใจใชใ‚‹ใ€‚
DirectWrite
ใƒ†ใ‚ญใ‚นใƒˆใŠใ‚ˆใณใƒ•ใ‚ฉใƒณใƒˆ๏ผใƒ•ใ‚ฉใƒณใƒˆใ‚ฐใƒชใƒ•ใ‚’ๆ‰ฑใ†ใ€‚
DirectCompute
DirectX 11ใงๅฐŽๅ…ฅใ•ใ‚ŒใŸGPGPU็”จใฎAPIใจใ„ใ†ไฝ็ฝฎไป˜ใ‘ใ ใŒใ€ๅฎŸ้š›ใซใฏDirect3Dใฎไธ€้ƒจใ€‚
DirectSound
ไฝŽๆฐดๆบ–ใชใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ข๏ผˆไธปใซใ‚ตใ‚ฆใƒณใƒ‰ใ‚ซใƒผใƒ‰๏ผ‰ใธใฎๆ“ไฝœใ€‚
DirectMusic๏ผˆ่‹ฑ่ชž็‰ˆ๏ผ‰
DirectSoundใฎไธŠไฝใซไฝ็ฝฎใ—ใ€้Ÿณๆฅฝ๏ผˆใƒกใƒ‡ใ‚ฃใ‚ขใƒ•ใ‚กใ‚คใƒซใฎๅ†็”Ÿใชใฉ๏ผ‰ใ‚’ๆ‰ฑใ†ใ€‚
DirectX Audio
DirectX 8.0ไปฅ้™ใซๅฐŽๅ…ฅใ•ใ‚ŒใŸๅ็งฐใงใ€DirectSoundใŠใ‚ˆใณDirectMusicใฎ็ตฑๅˆใ‚’ๆ„ๅ‘ณใ™ใ‚‹ใ‚‚ใฎใ ใฃใŸใŒ[8]ใ€DirectX 9ไปฅ้™ใฏX3DAudio/XAudio2/XACT/DirectSoundใชใฉใฎ็ท็งฐใจใชใฃใฆใ„ใ‚‹[10]ใ€‚
DirectInput
ใ‚ธใƒงใ‚คใƒ‘ใƒƒใƒ‰ใ‚„ใ‚ฒใƒผใƒ ใƒ‘ใƒƒใƒ‰ใ‹ใ‚‰ใฎๅ…ฅๅŠ›ใ€ใŠใ‚ˆใณใƒ•ใ‚ฉใƒผใ‚นใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใ‚’ๆ‰ฑใ†ใ€‚
XInput
Xbox 360ใ‚„Xbox Oneใฎใ‚ณใƒณใƒˆใƒญใƒผใƒฉใƒผใ‚’WindowsไธŠใงไฝฟใˆใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹APIใ€‚
DirectPlay๏ผˆ่‹ฑ่ชž็‰ˆ๏ผ‰
ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใชใฉใ‚’ไป‹ใ—ใŸ้€šไฟกใ€‚
DirectShow
ๆฑŽ็”จ็š„ใชใƒžใƒซใƒใƒกใƒ‡ใ‚ฃใ‚ขใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใ‚ทใ‚นใƒ†ใƒ ใ€‚

DirectX APIใฏWindows APIใฎไธญใงใ‚‚ๅค‰ๅŒ–ใŒๆฟ€ใ—ใ„APIใฎใฒใจใคใงใ€Direct3D RMใ€DirectDrawใ€DirectSoundใ€DirectInputใ€DirectPlayใ€ใŠใ‚ˆใณDirectMusicใฏWindows Vistaไปฅ้™ๅฎŒๅ…จใชไบ’ๆ›ๆฉŸ่ƒฝใŒ็”จๆ„ใ•ใ‚Œใšใ€ไธ€้ƒจใ‚’้™คใ„ใฆๅปƒๆญขใ‚ใ‚‹ใ„ใฏไปฃๆ›ฟAPIใซๅธๅŽใ•ใ‚Œใฆใ„ใ‚‹[11][12]ใ€‚

้™ๆญข็”ป

็ทจ้›†

ๅ‹•็”ปใƒป้Ÿณๅฃฐ

็ทจ้›†

OpenGL

็ทจ้›†
WGL๏ผˆ่‹ฑ่ชž็‰ˆ๏ผ‰
OpenGLใจWindows (GDI) ใจใฎ้€ฃๆบ้ƒจๅˆ†ใ‚’ๆ‹…ๅฝ“ใ™ใ‚‹APIใงใ‚ใ‚‹ใ€‚ๅ„้–ขๆ•ฐๅใฏๆŽฅ้ ญ่พžwglใงๅง‹ใพใ‚Šใ€<wingdi.h>ใงๅฎฃ่จ€ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใชใŠใ€Windows SDKใซไป˜ๅฑžใ™ใ‚‹OpenGLใƒ˜ใƒƒใƒ€ใƒผใŠใ‚ˆใณใƒฉใ‚คใƒ–ใƒฉใƒชใซใฏOpenGL 1.1ใพใงใฎ้–ขๆ•ฐใ—ใ‹ๅฎš็พฉใ•ใ‚ŒใฆใŠใ‚‰ใšใ€ใ—ใŸใŒใฃใฆOpenGL 1.2ไปฅ้™ใฎๆฉŸ่ƒฝใ‚’ไฝฟใ†ใŸใ‚ใซใฏใ€Khronosใ‹ใ‚‰ๆœ€ๆ–ฐใฎOpenGLใƒ˜ใƒƒใƒ€ใƒผใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใŸใฎใกใ€WGLใฎwglGetProcAddress()้–ขๆ•ฐใ‚’็”จใ„ใฆใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ขใƒ™ใƒณใƒ€ใƒผใŒๆไพ›ใ™ใ‚‹OpenGL ICD (Installable Client Driver) ใฎ้–ขๆ•ฐใ‚จใƒณใƒˆใƒชใƒใ‚คใƒณใƒˆใ‚’ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณๅฎŸ่กŒๆ™‚ใซๅ–ๅพ—ใ™ใ‚‹ใชใฉใฎไฝœๆฅญใŒๅฟ…่ฆใจใชใ‚‹[14]ใ€‚

ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใƒปใ‚คใƒณใ‚ฟใƒผใƒใƒƒใƒˆ

็ทจ้›†

ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆๆŠ€่ก“

็ทจ้›†

ใƒใ‚คใƒ†ใ‚ฃใƒ–API

็ทจ้›†

ใƒใ‚คใƒ†ใ‚ฃใƒ–APIใฏใ€Windows NT็ณปใซใŠใ„ใฆWindows APIใ‚ˆใ‚Šไธ‹ไฝๅฑคใฎAPIใงใ‚ใ‚‹ใ€‚NT็ณปใงใฏใ€NTใƒใ‚คใƒ†ใ‚ฃใƒ–APIไธŠใซใ‚ตใƒ–ใ‚ทใ‚นใƒ†ใƒ ใจใ—ใฆWin32 APIใŒๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใŸใ ใ—ใ€DirectXใ‚„GDIใชใฉใฏใ€ใƒใ‚คใƒ†ใ‚ฃใƒ–APIใ‚’ไป‹ใ•ใšใ€ใ‚ˆใ‚Šไธ‹ไฝใซไฝ็ฝฎใ™ใ‚‹ใ‚ซใƒผใƒใƒซใจ็›ดๆŽฅใ‚„ใ‚Šๅ–ใ‚Šใ‚’่กŒใ†ใ€‚

.NET Frameworkใจใฎ้–ขไฟ‚

็ทจ้›†

Windowsใงๅ‹•ไฝœใ™ใ‚‹.NET Frameworkใฏใ€ๅŸบๆœฌ็š„ใซWin32 APIใ‚’็”จใ„ใฆๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ไพ‹ใˆใฐWindows FormsใŠใ‚ˆใณWindows Presentation Foundation (WPF) ใฏใใ‚Œใžใ‚Œๅ†…้ƒจ็š„ใซGDI/GDI+ใ‚ใ‚‹ใ„ใฏDirect3Dใ‚’ๅˆฉ็”จใ—ใฆๆง‹็ฏ‰ใ•ใ‚ŒใŸGUIใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ‚ใ‚Šใ€Win32 APIใจใฎ็›ธไบ’้‹็”จๆ€งใ‚‚็ขบไฟใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ๅŸบๆœฌใ‚ฏใƒฉใ‚นใƒฉใ‚คใƒ–ใƒฉใƒชใ‚‚ใ€OSใฎๆฉŸ่ƒฝใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใ‚‚ใฎใฏWindows APIใ‚’ๅ†…้ƒจ็š„ใซๅˆฉ็”จใ—ใฆใ„ใ‚‹ใ€‚P/Invokeใ‚„COM็›ธไบ’้‹็”จใซใ‚ˆใฃใฆใ€.NETใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‹ใ‚‰Windows APIใ‚’ๅˆฉ็”จใ™ใ‚‹ใ“ใจใ‚‚ๅฏ่ƒฝใงใ‚ใ‚‹ใ€‚

ใ‹ใคใฆใ€ใ€ŒWindows Vistaไปฅ้™ใ€WinFXใจๅ‘ผใฐใ‚Œใ‚‹ๆ–ฐใ—ใ„APIใŒWindows APIใซไปฃใ‚ใฃใฆใƒใ‚คใƒ†ใ‚ฃใƒ–APIใซใชใ‚‹๏ผˆWinFXใŒๆœ€ใ‚‚ไฝŽๆฐดๆบ–ใชAPIใจใชใ‚ŠWindows APIใฏใใฎใƒฉใƒƒใƒ‘ใƒผใจใชใ‚‹๏ผ‰ใ€ใจใ‚ขใƒŠใ‚ฆใƒณใ‚นใ•ใ‚ŒใŸใ“ใจใŒใ‚ใฃใŸใŒใ€็ตๅฑ€ๆ’คๅ›žใ•ใ‚Œใ€Windows Vista่ฃฝๅ“็‰ˆใงใฏๅพ“ๆฅ้€šใ‚ŠWindows APIใŒใƒใ‚คใƒ†ใ‚ฃใƒ–ใชAPIใจใชใฃใฆใ„ใ‚‹[16]ใ€‚WinFXใฎ่จˆ็”ปใฏๆ–น้‡่ปขๆ›ใ•ใ‚Œใ€ไบˆๅฎšใ•ใ‚Œใฆใ„ใŸๆฉŸ่ƒฝใฏ.NET Framework 3.0ใจใ—ใฆใƒชใƒชใƒผใ‚นใ•ใ‚ŒใŸ[17]ใ€‚

ๅฎŸ่ฃ…

็ทจ้›†

Windows APIใฏๅๅ‰ใ‹ใ‚‰ใ‚‚้กžๆŽจใงใใ‚‹ใจใŠใ‚Šใ€ไธปใซMicrosoft WindowsใซๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใใฎๅฎŸ่ฃ…ใฏWindowsใฎใƒใƒผใ‚ธใƒงใƒณๆฏŽใซๅฐ‘ใชใ‹ใ‚‰ใš้•ใ„ใŒๅญ˜ๅœจใ™ใ‚‹ใ€‚ใŸใจใˆใฐWin32ใฎๅ ดๅˆใ€Win32cใ€Win32sใงใฏใ”ใไธ€้ƒจใ‚’้™คใUnicodeใซๅฏพๅฟœใ—ใฆใ„ใชใ„ใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅฏพ็ญ–ใฎใ‚ขใ‚ฏใ‚ปใ‚นๅˆถ้™ใŒๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใชใ„ใชใฉใจใ„ใฃใŸ้•ใ„ใŒๆŒ™ใ’ใ‚‰ใ‚Œใ‚‹ใ€‚ใใ—ใฆใใ‚Œใฏๅคงใใๆฌกใฎใ‚ˆใ†ใซๅˆ†้กžใ™ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚

Win16

็ทจ้›†

Win16ใฏใ€16ใƒ“ใƒƒใƒˆใƒ—ใƒญใ‚ฐใƒฉใƒ ็”จใฎๅฎŸ่ฃ…ใงใ‚ใ‚‹ใ€‚ใŸใ ใ—ใ€Win16ใจใ„ใ†่ชž่‡ชไฝ“ใฏWin32ใŒ็™ปๅ ดใ—ใฆใ‹ใ‚‰็”จใ„ใ‚‰ใ‚Œใ‚‹ใ‚ˆใ†ใซใชใฃใŸใƒฌใƒˆใƒญใƒ‹ใƒ ใงใ‚ใ‚‹[18]ใ€‚Win16ใฏๅคงใใ2็จฎ้กžใซๅˆ†ใ‘ใ‚‰ใ‚Œใ‚‹ใ€‚

  • Windows 1.0ใ‹ใ‚‰Windows 3.1ใพใงใŠใ‚ˆใณWindows 95/98/Me๏ผˆ9x็ณป๏ผ‰ใฎๅฎŸ่ฃ…ใ€‚
  • WOW (Windows on Windows): Windows NTใซใ‚ˆใ‚‹Win16ใ‚ตใƒ–ใ‚ทใ‚นใƒ†ใƒ ใซใ‚ˆใ‚‹ๅฎŸ่ฃ…ใ€‚

Win32

็ทจ้›†

Win32ใฏใ€32ใƒ“ใƒƒใƒˆใƒ—ใƒญใ‚ฐใƒฉใƒ ็”จใฎๅฎŸ่ฃ…ใงใ‚ใ‚‹ใ€‚ๆฌกใฎใ‚ˆใ†ใซๅˆ†ใ‘ใ‚‰ใ‚Œใ‚‹ใ€‚

Win32
็‹ญ็พฉใฎWin32ใฏใ€NT็ณปใฎๅฎŸ่ฃ…ใ‚’ๆŒ‡ใ™ใ€‚
Win32c
9x็ณปใฎๅฎŸ่ฃ…ใ€‚'c'ใฏใ€Œcompatibilityใ€๏ผˆไบ’ๆ›๏ผ‰ใฎ้ ญๆ–‡ๅญ—ใงใ‚ใ‚‹ใ€‚ใ—ใ‹ใ—ใ€็พๅœจ[ใ„ใค?]ใงใฏ9xใฎๅฎŸ่ฃ…ใ‚‚ๅŒบๅˆฅใชใWin32ใจๅ‘ผใถ[19]ใ€‚
Win32s
Windows 3.1็”จใฎๅฎŸ่ฃ…ใ€‚'s'ใฏใ€Œsubsetใ€๏ผˆใ‚ตใƒ–ใ‚ปใƒƒใƒˆ๏ผ‰ใฎ้ ญๆ–‡ๅญ—ใงใ‚ใ‚‹ใ€‚Windows 3.1ใซใฏๆญ่ผ‰ใ•ใ‚ŒใฆใŠใ‚‰ใšใ€ๅˆฅ้€”ๅ…ฅๆ‰‹ใƒปใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ€‚
Win32 for Windows CE[20]
Windows CEใฎๅฎŸ่ฃ…ใ€‚ๆ–‡ๅญ—ใ‚ณใƒผใƒ‰ใซUnicodeใฎใฟใ‚’ไฝฟ็”จใ™ใ‚‹ใชใฉใฎ็‚นใŒ็‰นๅพด็š„ใงใ‚ใ‚‹ใ€‚
WOW64 (Windows on Windows 64)
Win64ไธŠใงWin32ใ‚’ใ‚จใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ™ใ‚‹ใ‚ตใƒ–ใ‚ทใ‚นใƒ†ใƒ ใซใ‚ˆใ‚‹ๅฎŸ่ฃ…ใ€‚

Windows NTใŒx86ไปฅๅค–ใฎใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใซ็งปๆคใ•ใ‚ŒใŸใ“ใจใซไผดใ„ใ€Win32ใฏๅ„็จฎใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃๅ‘ใ‘ใซ็งปๆคใ•ใ‚Œใฆใ„ใ‚‹[21]ใ€‚ใพใŸใ€Windows NTใงใฏใชใ„ใŒใ€ใ‹ใคใฆMacintosh็”จใฎWin32ใ‚‚ๅญ˜ๅœจใ—ใ€Microsoft Visual C++ 4.0 Cross-Development Edition for Macintoshใจใ—ใฆใ‚ฏใƒญใ‚นใ‚ณใƒณใƒ‘ใ‚คใƒฉใจใจใ‚‚ใซ็™บๅฃฒใ•ใ‚Œใฆใ„ใŸ[22]ใ€‚ใ“ใ‚Œใ‚‰ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใฎ็•ฐใชใ‚‹Win32ใฎ้–“ใซใฏใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ไธŠใงใฎไบ’ๆ›ๆ€งใŒใ‚ใ‚‹ใ€‚

Win64

็ทจ้›†

Win64ใฏใ€64ใƒ“ใƒƒใƒˆใƒ—ใƒญใ‚ฐใƒฉใƒ ็”จใฎๅฎŸ่ฃ…ใงใ‚ใ‚‹ใ€‚2021ๅนด3ๆœˆ็พๅœจใฎไธปๆตใฏx64ใ ใŒใ€Windows 10ใงใฏARM64ใ‚‚ใ‚ตใƒใƒผใƒˆใ•ใ‚Œใ‚‹ใ‚ˆใ†ใซใชใฃใŸ[23][24][25]ใ€‚

ใ‹ใคใฆWindows Server 2003ใŠใ‚ˆใณWindows XPใซใฆIA-64ใฎใ‚ตใƒใƒผใƒˆใŒๅง‹ใพใฃใŸใŒใ€Windows Server 2008 R2ใ‚’ๆœ€ๅพŒใซใ‚ตใƒใƒผใƒˆใŒๆ‰“ใกๅˆ‡ใ‚‰ใ‚ŒใŸ[26]ใ€‚

ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆไปฅๅค–ใซใ‚ˆใ‚‹ๅฎŸ่ฃ…

็ทจ้›†

Windows APIใฎไป•ๆง˜ใฏWindows SDKใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ‚„Microsoft Docs๏ผˆๆ—งMSDN ใƒฉใ‚คใƒ–ใƒฉใƒช๏ผ‰ใงๅ…ฌ้–‹ใ•ใ‚ŒใฆใŠใ‚Šใ€ใใ‚Œใ‚’ๅŸบใซใ—ใŸMicrosoft Windowsไปฅๅค–ใฎWindows APIใฎๅฎŸ่ฃ…ใŒๅญ˜ๅœจใ™ใ‚‹ใ€‚

Windowsใƒฉใƒณใ‚ฟใ‚คใƒ API

็ทจ้›†

Windowsใƒฉใƒณใ‚ฟใ‚คใƒ API (WinRT API) ใฏใ€Windows 8ใงๅฐŽๅ…ฅใ•ใ‚ŒใŸWindowsใ‚นใƒˆใ‚ขใ‚ขใƒ—ใƒช (Modern UIใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ) ใ‚’้–‹็™บใ™ใ‚‹ใŸใ‚ใฎCOMๆ‹กๅผตใซใ‚ˆใ‚‹้ซ˜ใƒฌใƒ™ใƒซAPIใ€‚ๅพŒ็ถ™ใจใชใ‚‹Windows 10ใงๅฐŽๅ…ฅใ•ใ‚ŒใŸใƒฆใƒ‹ใƒใƒผใ‚ตใƒซWindowsใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ  (UWP) ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎ้–‹็™บใซใŠใ‘ใ‚‹ใƒ™ใƒผใ‚นAPIใซใ‚‚ใชใฃใฆใ„ใ‚‹ใ€‚ไธ€้ƒจใฎWinRT APIใฏใ€ๅพ“ๆฅใฎใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ—ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‹ใ‚‰ๅˆฉ็”จใ™ใ‚‹ใ“ใจใ‚‚ใงใใ‚‹[27]ใ€‚ๅพ“ๆฅใฎWindows APIใฏใ€WinRT APIใจๅฏพๆฏ”ใƒปๅŒบๅˆฅใ•ใ‚Œใ‚‹ใจใใ€Win32 APIใจๅ‘ผใฐใ‚Œใ‚‹ใ“ใจใŒๅคšใ„ใ€‚

่ฉณ็ดฐ

็ทจ้›†

Unicodeๅฏพๅฟœ

็ทจ้›†
ๅ„Win32ใŒๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹API
Win 9x Win NT Win CE
A Yes Yes No
W ไธ€้ƒจๅฏพๅฟœ Yes Yes

Windows NT็ณปใงใฏๅฝ“ๅˆใ‹ใ‚‰UnicodeใŒ็”จใ„ใ‚‰ใ‚Œใฆใ„ใ‚‹ไธ€ๆ–นใ€Unicodeใซๅฏพๅฟœใ—ใฆใ„ใชใ„Win16ใจไบ’ๆ›ๆ€งใ‚’ๅ–ใ‚‹ใŸใ‚ใซใ€Win32 APIใ‹ใ‚‰ๅŒใ˜APIใซๅฏพใ—ใฆใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—็‰ˆใจUnicode็‰ˆใฎ2ใคใ‚’็”จๆ„ใ—ใ€C/C++ใฎใƒžใ‚ฏใƒญใ‚’้ง†ไฝฟใ—ใฆใ‚ณใƒณใƒ‘ใ‚คใƒซๆ™‚ใซใฉใกใ‚‰ใ‚’ไฝฟใ†ใ‹้ธๆŠžใงใใ‚‹ไป•็ต„ใฟใŒๆŽก็”จใ•ใ‚Œใฆใ„ใ‚‹[28]ใ€‚ใชใŠใ€Unicodeใฎ็ฌฆๅทๅŒ–ใซใฏๅฝ“ๅˆUCS-2ใŒใ€Windows 2000ใ‹ใ‚‰ๆญฃๅผใซUTF-16ใŒ็”จใ„ใ‚‰ใ‚Œใฆใ„ใ‚‹[29]ใ€‚

ๅ…ทไฝ“็š„ใซใฏใ€ๆ–‡ๅญ—ใŠใ‚ˆใณๆ–‡ๅญ—ๅˆ—ใฎ้–ขใ‚ใ‚‹้–ขๆ•ฐใƒปๆง‹้€ ไฝ“ใซใคใ„ใฆใ€ใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—๏ผˆWindowsใ‚ณใƒผใƒ‰ใƒšใƒผใ‚ธใซๅŸบใฅใใ€ๆ—ฅๆœฌ่ชž็’ฐๅขƒใงใ‚ใ‚Œใฐใ‚ณใƒผใƒ‰ใƒšใƒผใ‚ธ932๏ผ‰ใจUnicode (UTF-16) ใฎใฉใกใ‚‰ใ‚’ไธŽใˆใ‚‹ใ“ใจใ‚‚ใงใใ‚‹ใ‚ˆใ†ใซใ€2ใคใฎ้–ขๆ•ฐใƒปๆง‹้€ ไฝ“ใชใฉใŒๆบ–ๅ‚™ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใใฎๅ ดๅˆใ€ใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—ๅˆ—ใ‚’ไธŽใˆใ‚‹ในใ้–ขๆ•ฐใƒปๆง‹้€ ไฝ“ใฏๆœซๅฐพใซใ€ŒAใ€ใ‚’ไป˜ใ‘ใ€ใƒฏใ‚คใƒ‰ๆ–‡ๅญ—ๅˆ—ใ‚’ไธŽใˆใ‚‹ในใ้–ขๆ•ฐใƒปๆง‹้€ ไฝ“ใฏๆœซๅฐพใซใ€ŒWใ€ใ‚’ไป˜ใ‘ใฆๅŒบๅˆฅใ—ใฆใ„ใ‚‹ใ€‚ไพ‹ใˆใฐใ€Win16ใฎMessageBox้–ขๆ•ฐใซๅฏพใ—ใฆใ€Win32ใงใฏMessageBoxAใจMessageBoxWใจใ„ใ†2ใคใฎ้–ขๆ•ฐใŒ็”จๆ„ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใใ—ใฆใ€ใƒ—ใƒชใƒ—ใƒญใ‚ปใƒƒใ‚ต่ญ˜ๅˆฅๅญUNICODEใฎๅฎš็พฉใฎๆœ‰็„กใซใ‚ˆใฃใฆๅˆ‡ใ‚Šๆ›ฟใˆใŒ่กŒใ‚ใ‚Œใ‚‹ใ€‚

#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif

ใ•ใ‚‰ใซใ€ๆ–‡ๅญ—ๅž‹ใซๅฏพใ—ใฆใ‚‚ๅŒๆง˜ใซCHAR (charใฎtypedef) ใจWCHAR (wchar_tใฎtypedef) ใ‚’UNICODEใฎๅฎš็พฉใซๅฟœใ˜ใฆๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹TCHARๅž‹ใชใฉใ‚„ใ€ใƒŠใƒญใƒผๆ–‡ๅญ—ๅˆ—ๅฎšๆ•ฐใƒปใƒชใƒ†ใƒฉใƒซใจใƒฏใ‚คใƒ‰ๆ–‡ๅญ—ๅˆ—ๅฎšๆ•ฐใƒปใƒชใƒ†ใƒฉใƒซใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹TEXTใƒžใ‚ฏใƒญใŒๅญ˜ๅœจใ™ใ‚‹ใ€‚

#ifdef UNICODE
#define TEXT(s) L ## s
typedef WCHAR TCHAR;
#else
#define TEXT(s) s
typedef CHAR TCHAR;
#endif

ใ“ใ‚Œใ‚‰ใ‚’้ฉๅˆ‡ใซ็”จใ„ใ‚‹ใจใ€1ใคใฎใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‹ใ‚‰ใ‚ณใƒณใƒ‘ใ‚คใƒซๆ™‚ใฎใ‚ชใƒ—ใ‚ทใƒงใƒณใซใ‚ˆใฃใฆใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—ใ‚’็”จใ„ใ‚‹ๅฎŸ่กŒใƒ—ใƒญใ‚ฐใƒฉใƒ ใจใƒฏใ‚คใƒ‰ๆ–‡ๅญ—ใ‚’็”จใ„ใ‚‹ๅฎŸ่กŒใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎ2็จฎ้กžใŒไฝœๆˆใงใใ‚‹ใ€‚ไปฅไธ‹ใฏใใฎไพ‹ใงใ‚ใ‚‹ใ€‚

#include <windows.h>
#include <tchar.h> // WinMain ใจ wWinMain ใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹ _tWinMain ใชใฉใŒๅฎš็พฉใ•ใ‚Œใฆใ„ใ‚‹ใ€‚
int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPTSTR lpszCommandLine, int nCmdShow)
{
    MessageBox(NULL, TEXT("Hello, world"), TEXT("App"), MB_OK);
    return 0;
}

ใชใŠใ€Windows NT็ณปใซใŠใ‘ใ‚‹A็‰ˆใฎAPI้–ขๆ•ฐใฏใ€ๅ†…้ƒจ็š„ใซW็‰ˆใ‚’ๅ‘ผใณๅ‡บใ™ใƒฉใƒƒใƒ‘ใƒผใจใชใฃใฆใ„ใ‚‹[30]ใ€‚A็‰ˆAPIใซๅ…ฅๅŠ›ใ•ใ‚ŒใŸใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—ๅˆ—ใฏUnicodeๆ–‡ๅญ—ๅˆ—ใซๅค‰ๆ›ใ•ใ‚Œใฆใ‹ใ‚‰W็‰ˆAPIใซๅ…ฅๅŠ›ใ•ใ‚Œใ€W็‰ˆAPIใ‹ใ‚‰ๅ‡บๅŠ›ใ•ใ‚ŒใŸUnicodeๆ–‡ๅญ—ๅˆ—ใฏใƒžใƒซใƒใƒใ‚คใƒˆๆ–‡ๅญ—ๅˆ—ใซๅค‰ๆ›ใ•ใ‚ŒใฆA็‰ˆAPIใฎๅ‡บๅŠ›ใจใชใ‚‹ใ€‚

ใ“ใฎใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎAใฏANSIใ€WใฏWideใ‚’ๆ„ๅ‘ณใ™ใ‚‹[31]ใ€‚ANSIใฏใ€Windowsใ‚ณใƒผใƒ‰ใƒšใƒผใ‚ธใฎไธ€้ƒจใŒANSI่ฆๆ ผใฎใƒ‰ใƒฉใƒ•ใƒˆใ‚’ๅ…ƒใซใ—ใŸใ“ใจใซ็”ฑๆฅใ™ใ‚‹[32]ใ€‚ใƒฏใ‚คใƒ‰ๆ–‡ๅญ— (wchar_t) ใฏC/C++ใฎ็”จ่ชžใงใ‚ใ‚‹ใŒใ€Windows็”จใฎC/C++ๅ‡ฆ็†็ณปใซใŠใ„ใฆใ€ใƒฏใ‚คใƒ‰ๆ–‡ๅญ—ใฏๅคงๆŠตUCS-2ใพใŸใฏUTF-16ใจใ—ใฆๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใพใŸใ€OLE้–ขไฟ‚ใงใฏใ€Win32ใงใ™ในใฆUnicodeๅŒ–ใ•ใ‚Œใ€A/WใฎๅŒบๅˆฅใŒๅญ˜ๅœจใ—ใชใ„ใ€‚

ใชใŠใ€Windows 9x็ณปใงใฏใ€Unicode็‰ˆAPIใฏไธ€้ƒจใ—ใ‹ๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใชใ„[33]ใ€‚ใŸใ ใ—ใ€Microsoft Layer for Unicodeใ‚’ๅˆฉ็”จใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€ใปใผใ™ในใฆใฎUnicode็‰ˆAPIใŒไฝฟ็”จๅฏ่ƒฝใซใชใ‚‹[34]ใ€‚ใพใŸใ€Windows CEใงใฏใ€้€†ใซUnicode็‰ˆAPIใ—ใ‹ๅฎŸ่ฃ…ใ—ใฆใ„ใชใ„ใ€‚NT็ณปใงใ‚‚ใ€Unicodeใ‚’ๅ‰ๆใจใ—ใŸไป•ๆง˜ๅค‰ๆ›ดใŒ่กŒใ‚ใ‚ŒใŸใ‚Š[35]ใ€Theme APIใชใฉๆ–ฐใ—ใ„APIใงA/Wใฎ2็จฎใ‚’็”จๆ„ใ›ใšUnicodeใ‚’็”จใ„ใ‚‹ใ‚‚ใฎใ ใ‘ใ‚’็”จๆ„ใ—ใŸใ‚Šใ™ใ‚‹ใชใฉใ€ๅพใ€…ใซUnicodeใธๅ‚พๆ–œใ™ใ‚‹ๅ‚พๅ‘ใซใ‚ใ‚‹ใ€‚

ๆญดๅฒ

็ทจ้›†

Windows APIใฎๆญดๅฒใฏใ€ใ‚‚ใกใ‚ใ‚“Windows่‡ชไฝ“ใฎๆญดๅฒใจๅˆ‡ใ‚Š้›ขใ›ใชใ„้–ขไฟ‚ใซใ‚ใ‚‹ใ€‚ๅธธใซใ€Windowsใซๆ–ฐๆฉŸ่ƒฝใŒๆญ่ผ‰ใ•ใ‚Œใ‚Œใฐใ€ใใ‚Œใ‚’ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใ‹ใ‚‰ไฝฟ็”จใ™ใ‚‹ใŸใ‚ใฎๆ–ฐใ—ใ„APIใŒ่ฟฝๅŠ ใ•ใ‚Œใ€ๅฏพๅฟœใ™ใ‚‹ๆ–ฐใ—ใ„SDKใŒๅ…ฌ้–‹ใ•ใ‚Œใ‚‹ใ“ใจใฎ็นฐใ‚Š่ฟ”ใ—ใงใ‚ใ‚‹ใ€‚ใƒ‡ใƒใ‚คใ‚นใƒ‰ใƒฉใ‚คใƒใƒผใซๅฏพๅฟœใ‚’่ฟซใ‚‹ใ‚‚ใฎใฏใ€DDK/WDK็ตŒ็”ฑใงๅ…ฌ้–‹ใ•ใ‚Œใ‚‹ใ€‚

Windows APIใฎๆญดๅฒไธŠใ€ๆœ€ใ‚‚ๅคงใใชๅค‰้ฉใฏWindows NTใซไผดใ†Win32ใฎ็™ปๅ ดใ ใฃใŸใ€‚ใƒใ‚คใƒณใ‚ฟใจใƒใƒณใƒ‰ใƒซใ‚‚32ใƒ“ใƒƒใƒˆๅŒ–ใ•ใ‚ŒใŸใ“ใจใ€UnicodeใธใฎๅฏพๅฟœใŒๅ›ณใ‚‰ใ‚ŒใŸใ“ใจใŒๅคงใใชๅค‰ๅŒ–ใงใ‚ใ‚‹ใ€‚

ใชใŠใ€็พๅœจ[ใ„ใค?]ใฏ็ทฉใ‚„ใ‹ใซ64ใƒ“ใƒƒใƒˆใธใฎ็งป่กŒใŒ้€ฒใ‚“ใงใ„ใ‚‹ใ€‚Win64ใงใฏใ€ใƒใ‚คใƒณใ‚ฟใŠใ‚ˆใณใƒใƒณใƒ‰ใƒซใฏ64ใƒ“ใƒƒใƒˆๅŒ–ใ•ใ‚Œใฆใ„ใ‚‹ใŒใ€ใใ‚Œไปฅๅค–ใงใฏ16ใƒ“ใƒƒใƒˆใ‹ใ‚‰32ใƒ“ใƒƒใƒˆใธใฎ็งป่กŒๆ™‚ใฎใ‚ˆใ†ใชๅคงใใชๅค‰ๅŒ–ใฏใชใ„ใ€‚ใชใŠใ€64ใƒ“ใƒƒใƒˆ็‰ˆWindowsใงใฏ32ใƒ“ใƒƒใƒˆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใจใฎ็›ธไบ’้‹็”จๆ€งใ‚’็ขบไฟใ™ใ‚‹ใŸใ‚ใ€ใƒใƒณใƒ‰ใƒซใฎไธŠไฝ32ใƒ“ใƒƒใƒˆใ‚’ไฝฟ็”จใ™ใ‚‹ไป•็ต„ใฟใจใชใฃใฆใŠใ‚Šใ€ใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆ (HWND) ใชใฉใฎใƒฆใƒผใ‚ถใƒผใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใƒใƒณใƒ‰ใƒซใ€ใƒ–ใƒฉใ‚ท (HBRUSH) ใ‚„ใƒšใƒณ (HPEN) ใชใฉใฎGDIใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใƒใƒณใƒ‰ใƒซใ€ใใ—ใฆใƒŸใƒฅใƒผใƒ†ใƒƒใ‚ฏใ‚นใ€ใ‚ปใƒžใƒ•ใ‚ฉใ€ใƒ•ใ‚กใ‚คใƒซใชใฉใฎๅๅ‰ไป˜ใใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใƒใƒณใƒ‰ใƒซใ‚’32ใƒ“ใƒƒใƒˆ/64ใƒ“ใƒƒใƒˆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–“ใงๅ…ฑๆœ‰ใ—ใ€ใƒ—ใƒญใ‚ปใ‚น้–“้€šไฟกใซๅˆฉ็”จใ™ใ‚‹ใ“ใจใŒใงใใ‚‹[36]ใ€‚ใพใŸใ€64ใƒ“ใƒƒใƒˆ็‰ˆWindowsใงใฏWOW64ใซใ‚ˆใ‚Š32ใƒ“ใƒƒใƒˆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๅฎŸ่กŒใงใใ‚‹ใŒใ€16ใƒ“ใƒƒใƒˆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ“ใจใฏใงใใชใ„[37][38]ใ€‚

ไบ’ๆ›ๆ€ง

็ทจ้›†

Windows APIใฏใ‚ทใ‚นใƒ†ใƒ ๅ…จไฝ“ใงๅ…ฑๆœ‰ใ™ใ‚‹DLLใ‚’้€šใ˜ใฆๅ…ฌ้–‹ใ•ใ‚ŒใฆใŠใ‚Šใ€ใ“ใฎใ‚ทใ‚นใƒ†ใƒ DLLใซๅค‰ๆ›ดใŒๅ…ฅใ‚‹ใจใ™ในใฆใฎใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใŒๅฝฑ้Ÿฟใ‚’ๅ—ใ‘ใ‚‹ใ“ใจใซใชใ‚‹ใ€‚ใ“ใฎใŸใ‚ใ€ๅบฆ้‡ใชใ‚‹ใƒใƒผใ‚ธใƒงใƒณใ‚ขใƒƒใƒ—ใ‚„ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใƒ‘ใƒƒใƒใฎ้ฉ็”จใซใ‚ˆใ‚Šใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎไบ’ๆ›ๆ€งใ‚’ๅคฑใฃใฆใ—ใพใ†ใ“ใจใซใ‚ˆใ‚‹DLLๅœฐ็„ (DLL Hell) ใฎ็™บ็”Ÿใ‚’ๆ‹›ใใ“ใจใŒใ‚ใ‚‹ใ€‚ใ“ใฎ็‚นใซ้–ขใ—ใฆใฏใ€Windows 2000ใงๅฐŽๅ…ฅใ•ใ‚ŒใŸSide-by-Sideใ‚ณใƒณใƒใƒผใƒใƒณใƒˆๅ…ฑๆœ‰ใ‚„ใ€Windows XPใงๅฐŽๅ…ฅใ•ใ‚ŒใŸๅˆ†้›ขใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใจSide-by-Sideใ‚ขใ‚ปใƒณใƒ–ใƒชใฎไป•็ต„ใฟใซใ‚ˆใ‚Šใ€ใ‚ใ‚‹็จ‹ๅบฆใฎ่งฃๆฑบใŒๅ›ณใ‚‰ใ‚Œใฆใ„ใ‚‹ใ€‚

ๅŸบๆœฌ็š„ใซWindowsใŠใ‚ˆใณWindows API่‡ชไฝ“ใฏไบ’ๆ›ๆ€งใซ้…ๆ…ฎใ—ใŸ่จญ่จˆใŒใชใ•ใ‚ŒใฆใŠใ‚Šใ€ใƒใƒผใ‚ธใƒงใƒณใ‚ขใƒƒใƒ—ใฎ้š›ใซๆ—ขๅญ˜ใฎๅ…ฌ้–‹APIใซ็ ดๅฃŠ็š„ๅค‰ๆ›ดใŒๅ…ฅใ‚‹ใ“ใจใฏใชใ„๏ผˆๆ™‚ไปฃ้…ใ‚ŒใจใชใฃใŸๅคใ„APIใŒ้žๆŽจๅฅจใซใชใ‚‹ใ“ใจใฏใ‚ใ‚‹ใŒใ€ๅฎŒๅ…จใซๅ‰Š้™คใ•ใ‚Œใ‚‹ใ“ใจใฏใพใ‚Œใงใ‚ใ‚‹๏ผ‰ใ€‚ๅ…ฌ้–‹APIใ‚’ๆญฃใ—ใๅˆฉ็”จใ—ใฆ้–‹็™บใ•ใ‚ŒใŸใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚„ใƒ‰ใƒฉใ‚คใƒใƒผใงใ‚ใ‚Œใฐใ€ๆ—งใƒใƒผใ‚ธใƒงใƒณใฎOSใงๆญฃๅธธใซๅ‹•ไฝœใ—ใฆใ„ใŸใ‚‚ใฎใฏใ€ใปใจใ‚“ใฉใฎใ‚ฑใƒผใ‚นใซใŠใ„ใฆไฟฎๆญฃใ™ใ‚‹ใ“ใจใชใๅ‹•ไฝœใ™ใ‚‹[39]ใ€‚ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅฏพ็ญ–ใฎใŸใ‚ใซWindows VistaใงๅฐŽๅ…ฅใ•ใ‚ŒใŸใƒฆใƒผใ‚ถใƒผใ‚ขใ‚ซใ‚ฆใƒณใƒˆๅˆถๅพก (UAC) ใซ้–ขใ—ใฆใ‚‚ใ€้€šๅธธๆจฉ้™ใฎใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใŒ็›ดๆŽฅใ‚ขใ‚ฏใ‚ปใ‚นใงใใชใ„ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซๅฏพใ™ใ‚‹่ชญใฟๆ›ธใใ‚’ไปฎๆƒณๅŒ–ใ—ใฆใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ™ใ‚‹ไป•็ต„ใฟใŒๆ•‘ๆธˆ็ญ–ใจใ—ใฆ็”จๆ„ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ใ—ใ‹ใ—ใ€ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚„ใƒ‰ใƒฉใ‚คใƒใƒผใŒ็‰นๅฎšใฎใƒใƒผใ‚ธใƒงใƒณใฎWindowsใงใ—ใ‹ๅ‹•ใ‹ใชใ„ใ‚ˆใ†ใช่จญ่จˆใซใชใฃใฆใ„ใŸๅ ดๅˆใ€ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใŒ่ตทๅ‹•ใงใใชใ„ใ€ๆญฃๅธธใซๅ‹•ไฝœใ—ใชใ„ใชใฉใฎไบ’ๆ›ๆ€งๅ•้กŒใŒ็™บ็”Ÿใ™ใ‚‹ใ“ใจใŒใ‚ใ‚‹ใ€‚ใ“ใฎๅ•้กŒใฎๅ›ž้ฟ็ญ–ใฎใฒใจใคใจใ—ใฆใ€Windowsใซใฏใ€ๆ—งใƒใƒผใ‚ธใƒงใƒณใฎOSใฎๅ‹•ไฝœใ‚’ใ‚ใ‚‹็จ‹ๅบฆใ‚จใƒŸใƒฅใƒฌใƒผใƒˆใ™ใ‚‹ใ€Œไบ’ๆ›ใƒขใƒผใƒ‰ใ€ใŒ็”จๆ„ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ไพ‹ใˆใฐใƒใƒผใ‚ธใƒงใƒณ็•ชๅทใ‚’ๅ–ๅพ—ใ™ใ‚‹ใŸใ‚ใฎWindows APIใซใŠใ„ใฆๆ—งใƒใƒผใ‚ธใƒงใƒณใฎOSใ‚’ๅฝ่ฃ…ใ—ใŸๅ€คใ‚’่ฟ”ใ™ใ‚ˆใ†ใซใ™ใ‚‹ใ“ใจใงใ€ใ“ใ‚Œใ‚‰ใซไพๅญ˜ใ—ใŸใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใธใฎๅฝฑ้Ÿฟใ‚’ไฝŽๆธ›ใ™ใ‚‹[40]ใ€‚

ๆ‰นๅˆค

็ทจ้›†

Windows APIใฏWin16ใ‚’ๆ‹กๅผตใ—ใฆ32ใƒ“ใƒƒใƒˆใ€64ใƒ“ใƒƒใƒˆๅŒ–ใ•ใ‚ŒใŸใจใ„ใ†ๆญดๅฒใŒใ‚ใ‚‹ใ€‚ใใฎใŸใ‚ๅบฆ้‡ใชใ‚‹ๆฉŸ่ƒฝใฎ่ฟฝๅŠ ใซใ‚ˆใ‚Šใ€้ซ˜ๅบฆใซ่ค‡้›‘ๅŒ–ใ—ใใฎ็ฟ’ๅพ—ใŒๅ›ฐ้›ฃใจๅŒ–ใ—ใฆใ„ใ‚‹ใจใ„ใ†ๅ•้กŒใŒใ‚ใ‚‹[41]ใ€‚

Windows 8ใงๅฐŽๅ…ฅใ•ใ‚ŒใŸๆ–ฐ่ฆ่จญ่จˆใฎWinRT APIใฏใ€ๅๅ‰็ฉบ้–“ใ‚’ๅˆฉ็”จใ—ใฆไฝ“็ณป็š„ใซๆ•ด็†ใ•ใ‚ŒใฆใŠใ‚Šใ€ๅŠน็އ็š„ใ‹ใคใƒขใƒ€ใƒณใชใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใ‚’ใ‚ตใƒใƒผใƒˆใ™ใ‚‹ใŒใ€Windowsใ‚นใƒˆใ‚ขใ‚ขใƒ—ใƒช๏ผˆใฎใกใฎUWPใ‚ขใƒ—ใƒช๏ผ‰ใฏใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚น็’ฐๅขƒใงๅ‹•ไฝœใ™ใ‚‹ใŸใ‚ใซๅˆถ็ด„ใŒๅคšใใ€ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใƒผ้–‹็™บใฎไธปๆตใจใฏใชใ‚‰ใชใ‹ใฃใŸใ€‚็ตๅฑ€ใฏๅพ“ๆฅใฎWin32 APIใ‚„.NET Frameworkใ‚’ไฝฟ็”จใ—ใŸใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ—ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใŒไธปๆตใฎใพใพใงใ‚ใ‚‹ใŒใ€Win32 APIใซใ‚ˆใ‚‹้–‹็™บใฏGUIใƒ„ใƒผใƒซใ‚ญใƒƒใƒˆใฎใ‚ตใƒใƒผใƒˆใŒๅผฑใใ€ใƒฌใ‚ฌใ‚ทใƒผใชๅค–่ฆณใฎGUIใ‚ฆใ‚ฃใ‚ธใ‚งใƒƒใƒˆใ—ใ‹ไฝฟใˆใชใ„ใชใฉใฎๅ•้กŒใŒใ‚ใ‚‹[42]ใ€‚

ใƒฉใƒƒใƒ‘ใƒผใƒฉใ‚คใƒ–ใƒฉใƒช

็ทจ้›†

Windows APIใฏๆฏ”่ผƒ็š„ไฝŽๆฐดๆบ–ใงใ‚ใ‚‹ใŸใ‚ใ€้ซ˜ๆฐดๆบ–ใชใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ๆŒใŸใ›ใŸใ‚Šใ€C/C++ไปฅๅค–ใฎ่จ€่ชžใ‹ใ‚‰ๅˆฉ็”จใ—ใŸใ‚Šใ™ใ‚‹ใŸใ‚ใฎๆง˜ใ€…ใชใƒฉใƒƒใƒ‘ใƒผใƒฉใ‚คใƒ–ใƒฉใƒชใ‚„ใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใŒๆ•ฐๅคšใๅญ˜ๅœจใ™ใ‚‹ใ€‚ไธปใชใ‚‚ใฎใฏๆฌกใฎใจใŠใ‚Šใ€‚

ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆ

็ทจ้›†
Microsoft Foundation Class (MFC)
C++ใ‚ฏใƒฉใ‚นใซใ‚ˆใ‚‹Windows APIใฎใƒฉใƒƒใƒ‘ใƒผใ€‚
Active Template Library (ATL)
C++ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใซใ‚ˆใ‚‹COMใฎใƒฉใƒƒใƒ‘ใƒผใ€‚
Windows Template Library (WTL)
ATLใฎๆ‹กๅผตใจใ—ใฆไฝœใ‚‰ใ‚ŒใŸ่ปฝ้‡ใฎWindows APIใฎใƒฉใƒƒใƒ‘ใƒผใ€‚็พๅœจ[ใ„ใค?]ใฏCPLใซๅŸบใฅใใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใจใชใฃใฆใ„ใ‚‹ใ€‚

ใƒœใƒผใƒฉใƒณใƒ‰

็ทจ้›†
Object Windows Library (OWL)
MFCใจๅŒๆ™‚ๆœŸใซๅ…ฌ้–‹ใ•ใ‚Œใ€ใ‚ˆใ‚Šใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆๆŒ‡ๅ‘ใซไฝœใ‚‰ใ‚ŒใŸใƒฉใƒƒใƒ‘ใƒผใ€‚
Visual Component Library (VCL)
ใƒœใƒผใƒฉใƒณใƒ‰ใŒใใฎๅพŒใซ้–‹็™บใ—ใŸDelphiใซใ‚ˆใ‚‹ใƒฉใƒƒใƒ‘ใƒผใ€‚Windows Formsใฎใƒ™ใƒผใ‚นใซใ‚‚ใชใฃใŸใ€‚

.NET Frameworkใ‚„Windows็‰ˆ.NET Coreใฏใ€ๅ†…้ƒจ็š„ใซWindows APIใ‚’ๅˆฉ็”จใ—ใฆๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ‚‚ใฎใฎใ€ๅŸบๆœฌใ‚ฏใƒฉใ‚นใƒฉใ‚คใƒ–ใƒฉใƒชใชใฉใฏใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ้žไพๅญ˜ใจใชใ‚‹ใ‚ˆใ†ๆŠฝ่ฑกๅŒ–ใ•ใ‚Œใฆใ„ใ‚‹ใŒใ€Windowsๅ›บๆœ‰ใฎๆฉŸ่ƒฝใ‚’ไฝฟ็”จใ—ใŸGUIใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใ‚„ใ€Windows APIใ‚’่–„ใใƒฉใƒƒใƒ—ใ—ใŸใ ใ‘ใฎ้ƒจๅˆ†ใ‚‚ๅญ˜ๅœจใ—ใ€System.Windowsๅๅ‰็ฉบ้–“ใ‚„Microsoft.Win32ๅๅ‰็ฉบ้–“ใชใฉใซใพใจใ‚ใ‚‰ใ‚Œใฆใ„ใ‚‹[43][44]ใ€‚

่„šๆณจ

็ทจ้›†
  1. ^ Windows API index - Win32 apps | Microsoft Docs
  2. ^ __stdcall | Microsoft Docs
  3. ^ x64ใฎๅ ดๅˆใฏ__fastcallใŒๆŽก็”จใ•ใ‚Œใฆใ„ใ‚‹ใ€‚
  4. ^ ใƒใƒฃใƒผใƒซใ‚บใƒปใƒšใ‚พใƒซใƒ‰ใ€Žใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐWindows็ฌฌ5็‰ˆใ€ ใ€ˆไธŠใ€‰ใ€ใ‚ขใ‚นใ‚ญใƒผใ€2000ๅนด10ๆœˆใ€‚ISBNย 978-4756136008ใ€‚ย 
  5. ^ ASCII.jp๏ผšMinWinใจVirtual DLLใงๅค‰ใ‚ใ‚‹Windowsใ‚ซใƒผใƒใƒซ (1/2)๏ฝœใ‚ใชใŸใฎ็Ÿฅใ‚‰ใชใ„Windows
  6. ^ ASCII.jp๏ผšARM็‰ˆWindows 8ๅฎŸ็พใฎๅธƒ็ŸณใจใชใฃใŸWindows 7ใฎใ€ŒMinWinใ€ (3/4)๏ฝœๅŸบ็คŽใ‹ใ‚‰่ฆšใˆใ‚‹ ๆœ€ๆ–ฐOSใฎใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผ
  7. ^ โ€œOverview of the Windows APIโ€ (่‹ฑ่ชž) (2009ๅนด5ๆœˆ7ๆ—ฅ). 2009ๅนด7ๆœˆ8ๆ—ฅ้–ฒ่ฆงใ€‚
  8. ^ a b DirectX 8.0 ใฎ็ดนไป‹ | Microsoft Docs
  9. ^ Getting started with DirectX Graphics - Win32 apps | Microsoft Docs
  10. ^ ใ‚ชใƒผใƒ‡ใ‚ฃใ‚ชใฎใƒชใƒ•ใ‚กใƒฌใƒณใ‚น | Microsoft Docs
  11. ^ DirectX ใซ้–ขใ—ใฆใ‚ˆใๅฏ„ใ›ใ‚‰ใ‚Œใ‚‹่ณชๅ• | Microsoft Docs
  12. ^ DirectX Frequently Asked Questions - Win32 apps | Microsoft Docs
  13. ^ Windows Multimedia - Win32 apps | Microsoft Docs
  14. ^ OpenGL - Win32 apps | Microsoft Docs
  15. ^ Windows HTTP Services - Win32 apps | Microsoft Learn
  16. ^ ๆœฌ็”ฐ้›…ไธ€ใฎใ€Œ้€ฑๅˆŠใƒขใƒใ‚คใƒซ้€šไฟกใ€
  17. ^ Windows Vistaใจใฏไฝ•ใ‹๏ผŸ๏ผˆ3/3๏ผ‰ - ๏ผ IT
  18. ^ Petzold, Charles ่‘—ใ€ๆ ชๅผไผš็คพใƒญใƒณใ‚ฐใƒ†ใƒผใƒซ/้•ทๅฐพ้ซ˜ๅผ˜ ่จณใ€Žใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐWindowsใ€ ใ€ˆไธŠใ€‰๏ผˆ็ฌฌ5็‰ˆ๏ผ‰ใ€ใ‚ขใ‚นใ‚ญใƒผใ€2000ๅนด10ๆœˆใ€33้ ใ€‚ISBNย 978-4756136008ใ€‚ย 
  19. ^ Petzold, Charles ่‘—ใ€ๆ ชๅผไผš็คพใƒญใƒณใ‚ฐใƒ†ใƒผใƒซ/้•ทๅฐพ้ซ˜ๅผ˜ ่จณใ€Žใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐWindowsใ€ ใ€ˆไธŠใ€‰๏ผˆ็ฌฌ5็‰ˆ๏ผ‰ใ€ใ‚ขใ‚นใ‚ญใƒผใ€2000ๅนด10ๆœˆใ€34้ ใ€‚ISBNย 978-4756136008ใ€‚ย 
  20. ^ โ€œMicrosoft Announces Visual C++ for Windows CEโ€ (่‹ฑ่ชž). ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆ (1997ๅนด4ๆœˆ1ๆ—ฅ). 2009ๅนด1ๆœˆ30ๆ—ฅ้–ฒ่ฆงใ€‚
  21. ^ โ€œCross-Platform Application Development in Windows NTโ€ (่‹ฑ่ชž) (2003ๅนด12ๆœˆ1ๆ—ฅ). 2007ๅนด7ๆœˆ26ๆ—ฅ้–ฒ่ฆงใ€‚
  22. ^ โ€œMicrosoft Visual C++ 4.0 Cross-Development Edition for Macintosh (Archived Visual C++ Technical Articles)โ€ (่‹ฑ่ชž) (1995ๅนด7ๆœˆ). 2007ๅนด7ๆœˆ26ๆ—ฅ้–ฒ่ฆงใ€‚
  23. ^ Microsoftใ€ARM64ๅฏพๅฟœใฎใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ—็‰ˆWindows 10ใ‚’่จˆ็”ปใ‹ - ใ‚จใ‚ญใ‚ตใ‚คใƒˆใƒ‹ใƒฅใƒผใ‚น
  24. ^ ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆใ€ARM64ๅ‘ใ‘Windowsใ‚ขใƒ—ใƒชใฎ้–‹็™บใจ้…ๅธƒใ‚’ๆญฃๅผใ‚ตใƒใƒผใƒˆ - CNET Japan
  25. ^ Windows SDK 10ใซใฏARM64็”จใฎใ‚คใƒณใƒใƒผใƒˆใƒฉใ‚คใƒ–ใƒฉใƒชใƒ•ใ‚กใ‚คใƒซใชใฉใŒๅซใพใ‚ŒใฆใŠใ‚Šใ€ๅพ“ๆฅใฎใƒใ‚คใƒ†ใ‚ฃใƒ–ใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ—ใ‚ขใƒ—ใƒชใจUWPใ‚ขใƒ—ใƒชใ‚’้–‹็™บใงใใ‚‹ใ‚ˆใ†ใซใชใฃใฆใ„ใ‚‹ใ€‚
  26. ^ ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆใ€ใ€ŒItaniumใ€ใƒใƒƒใƒ—ใฎใ‚ตใƒใƒผใƒˆใ‚’็ต‚ไบ†ใธ - CNET Japan
  27. ^ ใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ— ใ‚ขใƒ—ใƒชใง Windows ใƒฉใƒณใ‚ฟใ‚คใƒ  API ใ‚’ๅ‘ผใณๅ‡บใ™ - Windows apps | Microsoft Docs
  28. ^ โ€œWorking with Strings (Windows)โ€ (่‹ฑ่ชž). MSDNใƒฉใ‚คใƒ–ใƒฉใƒช. ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆ (2010ๅนด10ๆœˆ5ๆ—ฅ). 2011ๅนด8ๆœˆ27ๆ—ฅ้–ฒ่ฆงใ€‚
  29. ^ โ€œSurrogates and Supplementary Charactersโ€. MSDNใƒฉใ‚คใƒ–ใƒฉใƒช (2009ๅนด1ๆœˆ12ๆ—ฅ). 2010ๅนด1ๆœˆ19ๆ—ฅ้–ฒ่ฆงใ€‚
  30. ^ โ€œWindows XP Professional ใฎๅคš่จ€่ชžใ‚ชใƒ—ใ‚ทใƒงใƒณใฎๆฏ”่ผƒโ€. TechNetใƒฉใ‚คใƒ–ใƒฉใƒช. 2010ๅนด1ๆœˆ19ๆ—ฅ้–ฒ่ฆงใ€‚
  31. ^ โ€œUnicode in the Windows APIโ€. MSDNใƒฉใ‚คใƒ–ใƒฉใƒช (2010ๅนด1ๆœˆ12ๆ—ฅ). 2010ๅนด1ๆœˆ19ๆ—ฅ้–ฒ่ฆงใ€‚
  32. ^ Chen, Raymond (2004ๅนด5ๆœˆ31ๆ—ฅ). โ€œWhy is the default 8-bit codepage called "ANSI"?โ€ (่‹ฑ่ชž). The Old New Thing. 2008ๅนด1ๆœˆ30ๆ—ฅ้–ฒ่ฆงใ€‚
  33. ^ โ€œOther Existing Unicode Supportโ€ (่‹ฑ่ชž). MSDNใƒฉใ‚คใƒ–ใƒฉใƒช. 2010ๅนด1ๆœˆ19ๆ—ฅ้–ฒ่ฆงใ€‚
  34. ^ โ€œMicrosoft Layer for Unicode Referenceโ€ (่‹ฑ่ชž). MSDNใƒฉใ‚คใƒ–ใƒฉใƒช. 2009ๅนด7ๆœˆ31ๆ—ฅ้–ฒ่ฆงใ€‚
  35. ^ โ€œ[WinXP] Common Control 6.0 ใฎ EM_LIMITTEXT ใซใ‚ˆใ‚‹ๅ…ฅๅŠ›ๅˆถ้™โ€. ใ‚ตใƒใƒผใƒˆๆŠ€่ก“ๆƒ…ๅ ฑ (2009ๅนด9ๆœˆ16ๆ—ฅ). 2010ๅนด1ๆœˆ19ๆ—ฅ้–ฒ่ฆงใ€‚
  36. ^ Interprocess Communication Between 32-bit and 64-bit Applications - Win32 apps | Microsoft Docs
  37. ^ Running 32-bit Applications - Win32 apps | Microsoft Docs
  38. ^ 64bit Windowsๆ™‚ไปฃๅˆฐๆฅ๏ผš็ฌฌ3ๅ›žใ€€ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎไบ’ๆ›ๆ€ง (1/3) - ๏ผ IT
  39. ^ Compatibility and Reliability - Win32 apps | Microsoft Docs
  40. ^ Windowsใฎไบ’ๆ›ๆ€งใƒ†ใ‚ฏใƒŽใƒญใ‚ธใฎไป•็ต„ใฟ๏ผˆๅ‰็ทจ๏ผ‰๏ผˆ1/3๏ผ‰ - ๏ผ IT
  41. ^ ๅกฉ็”ฐ็ดณไบŒ. โ€œ.NETใ€Œๆœฌ้Ÿณใ€็›ธ่ซ‡ๅฎค๏ผˆ็ฌฌ1ๅ›ž๏ผ‰Q3๏ผšใฉใ†ใ—ใฆใ„ใพใ€.NETใชใฎใ‹๏ผŸโ€. @IT. 2009ๅนด7ๆœˆ12ๆ—ฅ้–ฒ่ฆงใ€‚
  42. ^ ASCII.jp๏ผšUWPใ‹ใ‚‰ใƒ‡ใ‚นใ‚ฏใƒˆใƒƒใƒ—ใ‚ขใƒ—ใƒชใซๅ›žๅธฐใ™ในใใ€MSใŒ้€ใ‚Šๅ‡บใ—ใŸใ€ŒProject REUNIONใ€ (1/2)
  43. ^ System.Windows Namespace | Microsoft Docs
  44. ^ Microsoft.Win32 Namespace | Microsoft Docs

้–ข้€ฃ้ …็›ฎ

็ทจ้›†

ๅ‚่€ƒๆ–‡็Œฎ

็ทจ้›†
  • Charles Petzold่‘—ใ€€ใ€Žใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐWindows็ฌฌ5็‰ˆใ€ˆไธŠใ€‰ใ€ใ€€ใ‚ขใ‚นใ‚ญใƒผใ€2000ๅนดใ€‚ISBN 4756136001
  • Charles Petzold่‘—ใ€€ใ€Žใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐWindows็ฌฌ5็‰ˆใ€ˆไธ‹ใ€‰ใ€ใ€€ใ‚ขใ‚นใ‚ญใƒผใ€2000ๅนดใ€‚ISBN 475613601X
  • Jeffrey Richter่‘—ใ€€ใ€ŽAdvanced Windows ๆ”น่จ‚็ฌฌ4็‰ˆใ€ใ€€ใ‚ขใ‚นใ‚ญใƒผใ€2001ๅนดใ€‚ISBN 4756138055

ๅค–้ƒจใƒชใƒณใ‚ฏ

็ทจ้›†

๐Ÿ“š Artikel Terkait di Wikipedia

Microsoft Windows

0ใฎๆ™‚ไปฃใซใ‚ใ‚‰ใ‚†ใ‚‹APIใงๅญ˜ๅœจใ—ๅพ—ใ‚‹ใ“ใจใŒ็™บ่ฆšใ—ใ€ใ‚ซใƒผใƒใƒซ็ฉบ้–“ไปฅๅค–ใฎๅ ดๆ‰€ใซๅญ˜ๅœจใ™ใ‚‹ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ‚็…งใ—ใชใ„ใ‚ˆใ†ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไฟฎๆญฃใŒๅŠ ใˆใ‚‰ใ‚ŒใŸใ€‚ Windows Vistaใงใฏใ€ๅฝ“ๅˆWindows APIใซๆ›ฟใ‚ใ‚‹ๆ–ฐAPIใ€WinFXใ‚’ไธญๅฟƒใซๆฎใˆใ‚ˆใ†ใจใ„ใ†็›ฎ่ซ–่ฆ‹ใŒใชใ•ใ‚Œใฆใ„ใŸใ€‚ใ“ใ‚ŒใฏWindows API

Google Cloud

ใƒžใƒƒใƒ—ใฎๅœฐๅ›ณใ€็ตŒ่ทฏใ€ๅ ดๆ‰€ใซ้–ขใ™ใ‚‹ใƒ‡ใƒผใ‚ฟใ‚’ใ‚ขใƒ—ใƒชใซ็ตฑๅˆใงใใ‚‹ API ็พค Apigee API Platform - API ใฎ่จญ่จˆใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ขบไฟใ€ๅˆ†ๆžใ€ใ‚นใ‚ฑใƒผใƒชใƒณใ‚ฐใ‚’่กŒใ†ใŸใ‚ใฎ็ฎก็†ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ  API Monetization - API ใƒ—ใƒญใƒใ‚คใƒ€ใƒผใŒ API ใฎๅˆฉ็”จใซๅฏพใ—ใฆ่ชฒ้‡‘ใ—ใ€ๅŽ็›ŠๅŒ–ใ™ใ‚‹ใŸใ‚ใฎ Apigee

JavaScript

FirefoxใฎSpiderMonkeyใ€SafariใฎJavaScriptCoreใŒๆŒ™ใ’ใ‚‰ใ‚Œใ‚‹ใ€‚ ่จ€่ชžไป•ๆง˜ใ‚’ๅฎš็พฉใ™ใ‚‹ECMAScriptใฎใปใ‹ใซใ€Webใƒ–ใƒฉใ‚ฆใ‚ถใธใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใŸใ‚ใฎAPIไป•ๆง˜ใซDOMใชใฉใŒใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚‰ใฏECMAScriptใ‹ใ‚‰็‹ฌ็ซ‹ใ—ใฆใŠใ‚Šใ€JavaScriptใ‹ใ‚‰ใ‚‚็‹ฌ็ซ‹ใ—ใŸๆฆ‚ๅฟตใงใ‚ใ‚‹ใ€‚

ใ‚ชใƒšใƒฌใƒผใƒ†ใ‚ฃใƒณใ‚ฐใ‚ทใ‚นใƒ†ใƒ 

ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใ‚คใƒณใ‚ฟใƒ•ใ‚งใƒผใ‚น (API) ใจใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒใ‚คใƒŠใƒชใ‚คใƒณใ‚ฟใƒ•ใ‚งใƒผใ‚น (ABI) ใงใ‚ใ‚‹ใ€‚ใ‚ซใƒผใƒใƒซใฏใ‚ทใ‚นใƒ†ใƒ ใ‚ณใƒผใƒซใซใ‚ˆใฃใฆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใซใ‚ตใƒผใƒ“ใ‚นใ‚’ๆไพ›ใ™ใ‚‹ใ€‚ใ•ใ‚‰ใซๅŸบๆœฌใƒฉใ‚คใƒ–ใƒฉใƒชใ‚‚ๅซใ‚ใŸๅฝขใงใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใซๅฏพใ—ใฆAPI/ABIใ‚’ๆไพ›ใ™ใ‚‹ใ€‚ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใซใ‚ˆใฃใฆใฏใ‚ช

Microsoft DirectX

APIใฎ้›†ๅˆใงใ‚ใ‚‹ใ€‚ใ‚ชใƒผใƒใƒผใƒ˜ใƒƒใƒ‰ใ‚’ๅฐ‘ใชใใ—ใŸใƒ‡ใƒใ‚คใ‚นใฎไปฎๆƒณๅŒ–ใƒปๆŠฝ่ฑกๅŒ–ใ‚’ๆไพ›ใ™ใ‚‹ใ€‚WindowsใƒปXboxใƒปXbox 360ใƒปXbox Oneใชใฉใ€ใƒžใ‚คใ‚ฏใƒญใ‚ฝใƒ•ใƒˆ่ฃฝใฎใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใŠใ‚ˆใณใƒ‡ใƒใ‚คใ‚นใซใŠใ„ใฆๅบƒใๅˆฉ็”จใ•ใ‚Œใฆใ„ใ‚‹ใ€‚API

S!ใ‚ขใƒ—ใƒช

SoftBank 3G ใฏไปฅไธ‹ใฎAPIใฎไธ€้ƒจใพใŸใฏๅ…จ้ƒจใซๅฏพๅฟœใ€‚ CLDC 1.1 (JSR 139) MIDP 2.0 (JSR 118) Location API (JSR 179) Mobile Media API (JSR 135) Wireless Messaging API (JSR 120) Mobile

GPU

ใ‚‚ใฎใŒๅคšใ„ใ€‚ใพใŸใ€ๆฑŽ็”จๅŒ–ใƒปๅ…ฑ้€šๅŒ–ใฎใŸใ‚ใฎๅˆ†ๅŽšใ„ๆŠฝ่ฑกๅŒ–ๅฑคใŒใปใจใ‚“ใฉไธ่ฆใชๅฐ‚็”จAPIใ‚„ๅฐ‚็”จใƒžใ‚ทใƒณ่ชžใŒไฝฟใˆใ‚‹ใ“ใจใ‚‚ใ‚ใ„ใพใฃใฆใ€ๅŒไธ–ไปฃใซใŠใ‘ใ‚‹ไธ‹ไฝใ‚„ไธญไฝใฎPC็”จGPUใ‚ˆใ‚Šใ‚‚็”ปๅƒๅ‡ฆ็†ๆ€ง่ƒฝใซใŠใ„ใฆใฏ้ซ˜ๆ€ง่ƒฝใงใ‚ใ‚‹ใ€‚ ๆœฌ็ฏ€ใงใฏใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ขT&Lใ‚ใ‚‹ใ„ใฏใใ‚Œใซ้กžใ™ใ‚‹3ๆฌกๅ…ƒใ‚ณใƒณใƒ”ใƒฅใƒผใ‚ฟใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใ‚’ๆœ‰ใ™ใ‚‹ใ‚‚ใฎใฎใฟใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใ€‚

OpenGL

ใ‚ฏใ‚นใƒฉใ‚คใƒ–ใƒฉใƒชใงใ‚ใ‚‹ใ€‚SGI็คพๅ†…ใง่‡ช็คพใฎCGใƒฏใƒผใ‚ฏใ‚นใƒ†ใƒผใ‚ทใƒงใƒณๅ‘ใ‘ใซใ‚ฏใƒญใƒผใ‚บใƒ‰ใซ็ญ–ๅฎšใ•ใ‚ŒใŸAPIไป•ๆง˜ใŒๆ”น่‰ฏใ•ใ‚Œใฆๅ…ฌ้–‹ใ•ใ‚Œใ€ๅพŒใซๅคงใใชใ‚ทใ‚งใ‚ขใ‚’ๆŒใคใซ่‡ณใฃใŸใ€‚็พๅœจใฏๅคšๆง˜ใชๆ็”ปใƒ‡ใƒใ‚คใ‚นใ‚’ๅŒ…ๆ‹ฌใ™ใ‚‹ใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นAPIใฎใ‚ชใƒผใƒ—ใƒณๆจ™ๆบ–่ฆๆ ผใจใ—ใฆ็ญ–ๅฎšใŒ่กŒใชใ‚ใ‚Œใฆใ„ใ‚‹ใ€‚ OpenGLใฏใ€SGIใ‚’ใฏใ˜ใ‚ใ€ใƒ’ใƒฅใƒผใƒฌใƒƒใƒˆใƒปใƒ‘ใƒƒใ‚ซใƒผใƒ‰