COM सर्वर 32- बिट 64-बिट ऑपरेटिंग सिस्टम में एक ही तरह से पंजीकृत हैं। प्रश्न स्वयं पंजीकरण से संबंधित है, COM सर्वर पंजीकृत करने का सबसे सरल तरीका - क्रमशः HKLM/HKCR रजिस्ट्री को अद्यतन करने के लिए सर्वर से पूछें।
चूंकि आप सीधे डीएलएल नहीं चला सकते हैं, तो आप एक सहायक regsvr32
एप्लिकेशन का उपयोग करते हैं। लंबी कहानी को कम करने के लिए यह लगता है कि क्या डीएलएल 32- या 64-बिट है और एप्लिकेशन के संबंधित संस्करण का उपयोग करता है। फिर यह डीएलएल लोड करता है और पंजीकरण करने के लिए नियंत्रण पास करता है।
EXE COM सर्वर सीधे चलाया जा सकता है, इसलिए यह है कि आप उन्हें/regserver या/unregserver पैरामीटर पास करते हैं।
32- और 64-बिट ऑपरेटिंग सिस्टम के लिए विधियां 32- और 64-बिट COM सर्वर के लिए मान्य हैं।
अतिरिक्त पठन - Self-Registration: सर्वर एक DLL मॉड्यूल में पैक किया जाता है
हैं, DLL कार्यों DllRegisterServer और DllUnregisterServer निर्यात करना होगा। कोई भी एप्लिकेशन जो सर्वर को खुद को पंजीकृत करने के लिए निर्देश देना चाहता है (यानी, उसके सभी सीएलएसआईडी और टाइप लाइब्रेरी आईडी) GetProcAddress फ़ंक्शन के माध्यम से DllRegisterServer को पॉइंटर प्राप्त कर सकते हैं। DllRegisterServer के भीतर, DLL सभी आवश्यक रजिस्ट्री प्रविष्टियों को बनाता है, जो सभी InprocServer32 या InprocHandler32 प्रविष्टियों के लिए DLL के सही पथ को संग्रहीत करता है।
जब कोई एप्लिकेशन सिस्टम से घटक को निकालना चाहता है, तो उसे उस घटक को DllUnregisterServer को कॉल करके अनधिकृत करना चाहिए। इस कॉल के भीतर, सर्वर वास्तव में उन प्रविष्टियों को हटा देता है जो पहले DllRegisterServer में बनाए गए थे। सर्वर को अपनी कक्षाओं के लिए सभी प्रविष्टियों को अंधाधुंध नहीं हटाया जाना चाहिए क्योंकि अन्य सॉफ़्टवेयर ने अतिरिक्त प्रविष्टियां संग्रहीत की हो सकती हैं, जैसे कि TreatAs कुंजी।
यदि सर्वर को EXE मॉड्यूल में पैक किया गया है, तो सर्वर को पंजीकृत करने के लिए इच्छित एप्लिकेशन EXE सर्वर को कमांड लाइन तर्क/RegServer या -RegServer (केस-असंवेदनशील) के साथ लॉन्च करता है। यदि एप्लिकेशन सर्वर को अपंजीकृत करना चाहता है, तो यह EXE को कमांड-लाइन तर्क/अनग्रेसर या -न्रेगसेवर के साथ लॉन्च करता है। स्व-पंजीयन EXE इन कमांड लाइन तर्कों का पता लगाता है और एक ही ऑपरेशन को आमंत्रित करता है क्योंकि डीएलएल क्रमशः DllRegisterServerand DllUnregisterServer के भीतर होगा, InPocServer32 या InprocHandler32 के बजाय LocalServer32 के तहत अपना मॉड्यूल पथ पंजीकृत कर रहा है।
स्रोत
2016-06-20 20:38:12
ध्यान रखें, कि regsvr32 DLL फ़ाइलों के लिए काम करता है, लेकिन exe फ़ाइलों के लिए आपको/regserver स्विच – DarkSide
का उपयोग करना है, हम कैसे सत्यापित कर सकते हैं, COM घटक सफलतापूर्वक पंजीकृत है? – Ram