소프트웨어가 Win32 이름을 사용하는 이유는 무엇입니까?


31

소프트웨어 / 라이브러리가 Windows 플랫폼을 지원하는 경우 거의 항상 디렉토리와 변수의 이름을로 지정 win32합니다. 이것은 C / C ++ 프로젝트에서 가장 많이 사용됩니다. 심지어 는 MinGW의 프로젝트의 목표 트리플 사용 win32. 이것에 대한 이유가 있습니까? 왜 Windows 나 Microsoft Windows와 같은 올바른 이름을 사용하지 않습니까? 네이밍 선택에 법적인 걸림돌이 있습니까?

이 질문은 API에 관한 것이 아니라 사용중인 명명 규칙입니다. 도서관 지원하는 다른 운영 체제, 그들은 종종 적절한 같은 이름을 사용하는 경우 linux, freebsd특별 지원이 필요한 무엇이든 또는. 그러나 Windows와 관련하여 종종 win32나머지와 비교하여 조금 이상하게 보이는 것으로 축약됩니다 .


11
32 비트 응용 프로그램이 64 비트 응용 프로그램과 다르기 때문에?
Oded

52
Win32는 Unix / Linux 시스템에서 POSIX의 역할과 유사한 Windows API 의 이름입니다 . 이름은 32 비트 프로세서에서 유래 한 것일 수도 있지만 역사적인 유물로 볼 수 있습니다.
amon

4
bin이 전통적으로 바이너리 실행 파일이있는 디렉토리를 나타내는 데 사용되는 이유는 무엇입니까? 컨벤션 일뿐입니다. win32는 32 비트 윈도우에서 실행되는 프로그램의 줄임말입니다. flimflam이라고 부르기를 선호한다면 프로젝트에서 명확하지는 않지만 그렇게 할 수 있습니다.
Neil

37
여기에 의견에 많은 잘못된 정보가 있습니다 ... Win32는 16 비트 Windows 3과 32 비트 이후 버전을 구분할 때 90 년대 초부터 32 비트 코드를 암시하지 않았습니다. 최신 64 비트 버전의 Windows는 기본 64 비트 API를 구현하며이를 "Win32"라고합니다. 32 비트 API와 호환 되므로 동일한 이름을 유지 하지만 기본 64 비트 구현이므로 64 비트 라이브러리가 "Win32"를 호출하는 것이 가장 적합합니다. "Win64"는 실제로 x86-64 / AMD64가 아닌 Itanium 아키텍처를 의미합니다.
코디 그레이

6
@Oded : win32는 Windows가 16 비트에서 32 비트로 전환되었을 때의 보류입니다.
whatsisname

답변:


61

Win32는 Windows API의 일반적인 이름입니다. 이 API는 애플리케이션이 운영 체제와 인터페이스하는 방법을 지정합니다. Unix의 POSIX 표준과 거의 비슷하지만 Win32는 GUI 및 기타 여러 기능도 다룹니다.

Win32 API는 32 비트 Windows 설치로 제한되지 않습니다.

로부터 윈도우 개발자 센터 :

Windows API (응용 프로그래밍 인터페이스)를 사용하면 각 버전에 고유 한 기능을 활용하면서 모든 Windows 버전에서 성공적으로 실행되는 데스크톱 및 서버 응용 프로그램을 개발할 수 있습니다.

Windows API는 모든 Windows 기반 데스크톱 응용 프로그램에서 사용할 수 있으며 일반적으로 32 비트 및 64 비트 Windows에서 동일한 기능이 지원됩니다. 프로그래밍 요소 구현의 차이점은 기본 운영 체제의 기능에 따라 다릅니다. 이러한 차이점은 API 설명서에 나와 있습니다.

참고 이전에는 Win32 API라고했습니다. Windows API라는 이름은 16 비트 Windows에서의 루트와 64 비트 Windows에서의 지원을보다 정확하게 반영합니다.

Windows 용으로 개발하기 위해 Win32 API를 사용할 필요는 없습니다. 대안은 .NET 클래스 또는 Windows RT 인터페이스입니다.

기술적으로 Win64 변형이 있습니다. 그러나 데이터 모델 (포인터 크기)에서 주로 Win32와 다릅니다. 고유 한 API 세트가 아닙니다.

Win64 API 환경은 Win16에서 Win32 로의 주요 전환과 달리 Win32 API 환경과 거의 동일합니다. Win32 및 Win64 API가 이제 Windows API라고합니다. Windows API를 사용하면 동일한 소스 코드를 컴파일하여 32 비트 Windows 또는 64 비트 Windows에서 기본적으로 실행할 수 있습니다. 응용 프로그램을 64 비트 Windows로 이식하려면 코드를 다시 컴파일하십시오.

Windows 헤더 파일은 32 비트 및 64 비트 코드 모두에 사용할 수 있도록 수정되었습니다. ( 소스 )

Win64를 실질적으로 다르지 않다 때문에 당신은 거의 것입니다 결코 목표로 프로젝트를 볼 win64새로운 프로젝트를 대상으로 할 수 있지만 소스 코드 수준을 winapi대신 기존의 win32. 그러나 모든 실제적인 목적으로 이러한 모든 이름은 동일한 API를 나타냅니다.


5
또한 Win32 API는 다른 운영 체제 (예 : OS / 2, ReactOS)에서 지원되었으며 와인도 있으며 Win32 API의 구현이기도합니다.
Jörg W Mittag

6
@UnmannedPlayer, Win32는 대상 플랫폼의 이름입니다. 우리가 알고있는 Win32 Windows입니다. 위의 인용문에서 현재 올바른 이름은 "Windows API"이지만 동일한 내용을 나타냅니다.
amon

8
"응용 프로그램을 64 비트 Windows로 이식하려면 코드를 다시 컴파일하십시오."... riiiiiiiiiiiiiiiiiiiiiight.
Daniel Kamil Kozar

7
@DanielKamilKozar 이것은 들리는 것보다 덜 미쳤습니다 – 같은 API입니다. 물론, 마케팅 부서 였을 수도 있습니다. 말하기. 그러나 약간의 훈련과 충분한 테스트를 통해 이식 가능한 코드를 작성하는 것은 근본적으로 어렵지 않습니다. 중요한 차이점은 Win32, int, long 및 포인터 유형이 32 비트 크다는 것입니다. 이 가정은 더 이상 영리하려고 시도한 코드를 깨뜨리는 Win64에 적용되지 않습니다. 그러나 일단 코드가 이식 가능 해지면 Win32와 Win64의 차이점은 컴파일러 옵션에 지나지 않습니다.
amon

4
@amon : 불행히도 Microsoft는 32 비트 및 64 비트 앱이 레지스트리의 다른 영역을 사용하도록하는 기괴한 이유를 결정했습니다. 관련 응용 프로그램 그룹이 모두 32 비트이거나 64 비트가 아닌 한 설정을 공유하기가 불필요합니다. 비트. 예, 해결 방법이 있지만 단순히 동일한 스토리지를 사용하는 것만 큼 쉬운 방법은 없습니다.
supercat

29

Windows API는 30 세 이상이며 PC가 16 비트 였을 때 사용되어 왔기 때문에 32 비트, Win32, Win64가 뒤따 랐습니다. Windows 개발에는 플랫폼 의존성이 있으며 아키텍처의 OS 라이브러리 (dll)와 일치하도록 코드가 필요합니다.

https://en.wikipedia.org/wiki/Windows_API#Versions

win32에 대해 빌드 된 Windows 응용 프로그램은 32 비트 아키텍처에서 실행되며 win32 하위 시스템을 제공하는 Windows 운영 체제 덕분에 64 비트에서 실행되므로 win32 앱은 최신 64 비트 Windows OS에서 실행됩니다.

시간이 지남에 따라 win32 빌드가 점점 줄어들고 있지만 win32는 곧 완전히 사라지지 않을 것입니다. win32 빌드가 단계적으로 종료되면 아마도 win128이있을 것이고 win64는 새로운 win32가 될 것입니다.


3
새로운 Windows API를 WinRT라고합니다. Win32와 공통점이 많지만 Win32가 Win16 (?)에서와 마찬가지로 많이 다릅니다.
user253751

10
@immibis WinRT는 Microsoft가 아마도 "새로운"것이되기를 원했던 런타임입니다. Windows 8 이상, Windows RT 및 Windows Phone 8 이상에서 실행되는 Windows 스토어 앱의 런타임입니다. 당신은 아무도 좋아하지 않는 앱을 ​​알고 있습니다.
Metallkiller

이 답변에 WinRT API를 추가해 주셔서 감사합니다. 데스크탑이 아닌 Win 8+ 앱을 좋아하지 않는 사람들 그룹에 속한다고 생각합니다. 그러나 Microsoft는 Win32의 이름을 "Windows API"로 바꾼 것으로 보입니다. msdn.microsoft.com/en-us/library/windows/desktop/… 기존 소프트웨어에서 "win32"참조가 나타나는 이유에 대한 질문에 대답했습니다. 등
토마스 칼라일

지난 몇 달 동안이 답변을 개선 할 수있는 방법을 제안하기 위해 의견을 제시하지 않았습니다. 허용되는 대답은 기본적으로 "win32라는 이름이기 때문에"win32라고하는 질문에 대답합니다. 16 비트가 여전히 대다수였던 날에 32 비트 가능 컴퓨터를 구입 한 사람들이 하드웨어 나 소프트웨어 아키텍처의 어느 곳에서나 "16"을보고 싶거나 듣고 싶지 않다는 것이 주요 요점이기 때문에 제 대답은지지하지 않습니다. . 따라서 API는 32 비트가 새로운 16 비트가 된 10 년간을 생각하지 않을 것입니다.
토마스 칼라일
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.