सॉफ्टवेयर Win32 नाम का उपयोग क्यों करता है?


31

यदि किसी सॉफ़्टवेयर / लाइब्रेरी में विंडोज प्लेटफ़ॉर्म के लिए कुछ समर्थन है, तो वे लगभग हमेशा अपनी निर्देशिकाओं और चर को नाम देते हैं win32। यह C / C ++ प्रोजेक्ट्स में सबसे अधिक प्रचलित है। यहां तक ​​कि MinGW परियोजना का लक्ष्य ट्रिपल उपयोग करता है win32। क्या इसका कोई कारण है? विंडोज या माइक्रोसॉफ्ट विंडोज जैसे उचित नाम का उपयोग क्यों नहीं किया जाता है? नामकरण पसंद के आसपास कोई कानूनी रोड़ा है?

यह प्रश्न एपीआई के बारे में नहीं है, बल्कि उपयोग में नामकरण सम्मेलन है। जब एक पुस्तकालय अन्य ऑपरेटिंग सिस्टम का समर्थन करता है, तो वे अक्सर उचित नामों का उपयोग करते हैं linux, जैसे freebsdया जो भी विशेष समर्थन की आवश्यकता होती है। लेकिन जब यह विंडोज की बात आती है, तो इसे अक्सर संक्षिप्त रूप में win32देखा जाता है, जो बाकी की तुलना में थोड़ा अजीब लगता है।


11
क्योंकि 32 बिट अनुप्रयोग 64 बिट अनुप्रयोगों से अलग हैं?
Oded

52
Win32 विंडोज एपीआई का नाम है , यूनिक्स / लिनक्स सिस्टम पर POSIX की भूमिका के समान है। नाम 32-बिट प्रोसेसर से उत्पन्न हो सकता है, लेकिन इसे एक ऐतिहासिक कलाकृतियों के रूप में देखा जाना चाहिए।
अमन

4
बाइनरी निष्पादनयोग्य के साथ एक निर्देशिका को इंगित करने के लिए बिन पारंपरिक रूप से क्यों उपयोग किया जाता है? यह सिर्फ एक सम्मेलन है। win32 32 बिट्स के साथ विंडोज़ पर चलने वाले प्रोग्राम के लिए शॉर्टहैंड है। यदि आप इसे फ्लिफ़्लम कहना पसंद करते हैं, तो आप ऐसा करने के लिए स्वागत करते हैं, हालांकि यह आपके प्रोजेक्ट में बहुत स्पष्ट नहीं हो सकता है।
नील

37
यहाँ टिप्पणियों में बहुत सारी गलत सूचनाएँ ... Win32 ने 90 के दशक के शुरुआती दिनों से 32-बिट कोड को निहित नहीं किया है, जब इसने 16-बिट विंडोज 3 और 32-बिट के बाद के संस्करणों के बीच अंतर किया। विंडोज के आधुनिक 64-बिट संस्करण एक मूल 64-बिट एपीआई को लागू करते हैं, और इसे "विन 32" कहा जाता है। यह एक ही नाम रखता है क्योंकि यह 32-बिट एपीआई के साथ संगत है, लेकिन यह एक मूल 64-बिट कार्यान्वयन है, और यह 64-बिट लाइब्रेरी के लिए खुद को "Win32" कहने के लिए एकदम सही समझ में आएगा। "Win64" का अर्थ वास्तव में इटेनियम आर्किटेक्चर होगा, x86-64 / AMD64 नहीं।
कोड़ी ग्रे

6
@Oded: win32 एक होल्डओवर है जब विंडोज 16 से 32 बिट से परिवर्तित होता है।
whatsisname

जवाबों:


61

Win32 विंडोज एपीआई के लिए प्रथागत नाम है। यह एपीआई निर्दिष्ट करता है कि अनुप्रयोग ऑपरेटिंग सिस्टम के साथ कैसे इंटरफ़ेस कर सकते हैं। यह लगभग यूनिक्स पर POSIX मानक के साथ तुलनीय है, लेकिन Win32 GUI और कई अन्य विशेषताओं को भी शामिल करता है।

Win32 API 32-बिट विंडोज इंस्टॉलेशन तक सीमित नहीं है।

से विंडोज देव केंद्र :

विंडोज एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) आपको डेस्कटॉप और सर्वर एप्लिकेशन विकसित करने देता है जो प्रत्येक संस्करण के लिए अद्वितीय विशेषताओं और क्षमताओं का लाभ उठाते हुए विंडोज के सभी संस्करणों पर सफलतापूर्वक चलते हैं।

विंडोज एपीआई का उपयोग सभी विंडोज-आधारित डेस्कटॉप अनुप्रयोगों में किया जा सकता है, और समान कार्य आमतौर पर 32-बिट और 64-बिट विंडोज पर समर्थित हैं। प्रोग्रामिंग तत्वों के कार्यान्वयन में अंतर अंतर्निहित ऑपरेटिंग सिस्टम की क्षमताओं पर निर्भर करता है। ये अंतर एपीआई प्रलेखन में नोट किए गए हैं।

नोट इसे पहले Win32 API कहा जाता था। विंडोज एपीआई नाम अधिक सटीक रूप से 16-बिट विंडोज में इसकी जड़ों और 64-बिट विंडोज पर इसके समर्थन को दर्शाता है।

विंडोज के लिए विकसित करने के लिए आपको Win32 API का उपयोग करने की आवश्यकता नहीं है। विकल्प .NET कक्षाएं या विंडोज आरटी इंटरफ़ेस हैं।

तकनीकी रूप से एक Win64 वैरिएंट है। लेकिन यह Win32 से ज्यादातर डेटा मॉडल (पॉइंटर्स का आकार) में भिन्न होता है। यह एपीआई का एक अलग सेट नहीं है:

Win64 API वातावरण Win32 API वातावरण के समान ही है- Win16 से Win32 की प्रमुख शिफ्ट के विपरीत। Win32 और Win64 API को अब संयुक्त करके Windows API कहा जाता है। विंडोज एपीआई का उपयोग करते हुए, आप 32-बिट विंडोज या 64-बिट विंडोज पर देशी चलाने के लिए समान स्रोत कोड संकलित कर सकते हैं। एप्लिकेशन को 64-बिट विंडोज पर पोर्ट करने के लिए, बस कोड को फिर से जोड़ें।

विंडोज हेडर फ़ाइलों को संशोधित किया जाता है ताकि आप उन्हें 32-बिट और 64-बिट कोड के लिए उपयोग कर सकें। ( स्रोत )

क्योंकि Win64 काफी अलग नहीं है, आप लगभग कभी भी प्रोजेक्ट्स को win64सोर्स-कोड लेवल पर टारगेट करते हुए नहीं देखेंगे , हालाँकि नए प्रोजेक्ट्स winapiपारंपरिक की बजाय टारगेट कर सकते हैं win32। लेकिन सभी व्यावहारिक उद्देश्यों के लिए ये सभी नाम एक ही एपीआई का उल्लेख करते हैं।


5
इसके अलावा, Win32 API अन्य ऑपरेटिंग सिस्टम पर समर्थित था, जैसे OS / 2, ReactOS, और फिर वाइन, जो Win32 API का कार्यान्वयन भी है।
जॉर्ग डब्ल्यू मित्तग

6
@UnmannedPlayer, खैर, Win32 को लक्षित किए जा रहे मंच का नाम है। Win32 है जैसा कि हम जानते विंडोज। जैसा कि उपरोक्त उद्धरण आजकल उचित नाम "विंडोज एपीआई" बताता है, लेकिन यह एक ही बात का वर्णन करता है।
अमन

8
"एप्लिकेशन को 64-बिट विंडोज में पोर्ट करने के लिए, कोड को फिर से जोड़ें।" ... riiiiiiiiiiiiiiiiiiiiight।
डैनियल कामिल कोजार

7
@DanielKamilKozar यह जितना सुनने में लगता है उससे कम पागल है - यह एक ही एपीआई है। यकीन है, कि विपणन विभाग हो सकता है। बोला जा रहा है। लेकिन थोड़े अनुशासन और पर्याप्त परीक्षण के साथ, पोर्टेबल कोड लिखना मौलिक रूप से मुश्किल नहीं है। महत्वपूर्ण अंतर यह है कि Win32 में, int, long, और सूचक प्रकार 32 बिट बड़े हैं। यह धारणा अब Win64 के अंतर्गत नहीं है जो कोड को तोड़ता है जिसने चालाक बनने की कोशिश की। लेकिन एक बार कोड पोर्टेबल हो जाने के बाद, Win32 और Win64 के बीच का अंतर कंपाइलर विकल्प की तुलना में थोड़ा अधिक होता है।
'29

4
@amon: दुर्भाग्य से, Microsoft ने 32-बिट और 64-बिट ऐप्स को रजिस्ट्री के विभिन्न क्षेत्रों में उपयोग करने के लिए कुछ विचित्र कारण के लिए निर्णय लिया, जिससे संबंधित एप्लिकेशन के समूह के लिए अनावश्यक रूप से कठिन हो जाता है जब तक कि सभी 32 बिट या सभी 64 न हों। बिट। हाँ, वर्कअराउंड हैं, लेकिन कोई भी इतना आसान नहीं है जितना कि केवल एक ही स्टोरेज का उपयोग करना।
सुपरकैट

29

क्योंकि Windows API 30+ साल पुराना है और जब पीसी 16-बिट का था, तब 32-बिट साथ आया, फिर Win32s, फिर win64। विंडोज़ के विकास में प्लेटफ़ॉर्म निर्भरता है, और आपको आर्किटेक्चर में ओएस लाइब्रेरीज़ (dll) से मेल करने के लिए आपके कोड की आवश्यकता है।

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

Win32 के खिलाफ बनाया गया एक विंडोज़ अनुप्रयोग 32-बिट आर्किटेक्चर पर चलेगा, और विंडोज ऑपरेटिंग सिस्टम के आधार पर 64-बिट पर चलेगा, जो एक win32 सबसिस्टम प्रदान करता है ताकि win32 ऐप आधुनिक 64-बिट विंडोज़ ओएस पर चलें।

जबकि win32 बिल्ड कम होता जा रहा है और समय कम होता जा रहा है, win32 शायद किसी भी समय पूरी तरह से नहीं मिटेगा। जब win32 का निर्माण चरणबद्ध तरीके से होता है, तो संभवतः win128 होगा, और win64 नया win32 आएगा।


3
नई विंडोज़ एपीआई को WinRT कहा जाता है। यह Win32 के साथ बहुत कुछ है, लेकिन यह भी बहुत अलग है - जैसे Win32 ने Win16 (?) के साथ किया था।
user253751

10
@immibis WinRT एक ऐसा रनटाइम है जो शायद Microsoft "नया" बनना चाहता था। यह विंडोज स्टोर एप्स का रनटाइम है, विंडोज 8+, विंडोज आरटी और विंडोज फोन 8+ पर चल रहा है। तुम्हें पता है, उन ऐप्स के लिए कोई भी पसंद नहीं करता है।
Metallkiller

इस उत्तर के लिए WinRT API को जोड़ने के लिए आप दोनों को धन्यवाद। मुझे लगता है कि मैं ऐसे लोगों के समूह में आता हूं जो विन 8+ के गैर-डेस्कटॉप ऐप के शौकीन नहीं हैं। लेकिन ऐसा लगता है कि Microsoft ने Win32 का नाम बदलकर "Windows API" कर दिया है: msdn.microsoft.com/en-us/library/windows/desktop/… मैंने मौजूदा सॉफ्टवेयर में "win32" संदर्भ क्यों देखा, इस संदर्भ में प्रश्न का उत्तर दिया। आदि
थॉमस कार्लिसल

कुछ ने पिछले महीने की टिप्पणियों के बिना सुझाव दिया कि यह उत्तर कैसे सुधारा जा सकता है। स्वीकृत उत्तर मूल रूप से प्रश्न का उत्तर देता है "क्यों इसे win32 कहा जाता है" "क्योंकि इसे win32 नाम दिया गया है"। मैं अपने जवाब के पीछे खड़ा हूं क्योंकि मुख्य बिंदु यह है कि दिन में जब 16-बिट अभी भी बहुमत था, 32-बिट सक्षम कंप्यूटर खरीदने वाले लोग आपके हार्डवेयर या सॉफ़्टवेयर आर्किटेक्चर में कहीं भी "16" देखना या सुनना नहीं चाहते थे। । इसलिए एपीआई का नाम तदनुसार रखा गया था, शायद इस दशक के बारे में नहीं सोच रहा था जब 32-बिट नया 16-बिट बन गया था।
थॉमस कार्लिसल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.