माइक्रोसॉफ्ट के पास .NET ढांचे में एक बहुत अच्छा विंडोज एपीआई रैपर शामिल है। यह Microsoft.Win32.UnsafeNativeMethods, Microsoft.Win32.SafeNativeMethods और Microsoft.Win32.NativeMethods में संग्रहित है .Unfortunately वे सुलभ है क्योंकि वे निजी रूप में घोषित कर रहे हैं नहीं कर रहे हैं। क्या उन्हें आसानी से एक्सेस करने का कोई तरीका है?माइक्रोसॉफ्ट.Win32.UnsafeNativeMethods तक पहुंच रहा है?
उत्तर
उन कक्षाओं में अधिकांश विधि परिभाषाएं (यदि सभी नहीं हैं) extern
DllImport गुणों के साथ घोषणाएं हैं जो पी/Invoke के माध्यम से विंडोज एपीआई में कार्यों का संदर्भ देती हैं। इससे कोई फर्क नहीं पड़ता कि ये घोषणाएं कहाँ रहती हैं। आप UnsafeNativeMethods या SafeNativeMethods नामक अपनी खुद की कक्षा बना सकते हैं और वहां उसी विंडोज एपीआई फ़ंक्शंस का जिक्र करते हुए घोषणाएं डाल सकते हैं। आपको pinvoke.net पर सी # के लिए कई विंडोज एपीआई कार्यों के हस्ताक्षर मिलेंगे।
इन कक्षाओं में निहित अधिकांश कार्यक्षमता नेट फ्रेमवर्क द्वारा स्वयं प्रकट होती है; आपको एपीआई कॉल करने से पहले खोजना चाहिए (या यहां पूछना चाहिए)।
अपने प्रश्न का उत्तर देने के लिए, नहीं।
सबसे अच्छा आप उन्हें प्रतिबिंबक या संदर्भ स्रोत से कॉपी करना है।
आप कॉपीराइट उल्लंघनों की सिफारिश कर रहे हैं? – dtb
कॉपीराइट उल्लंघन नहीं है जब ऐसा करने का केवल एक सही तरीका है। – Josh
@ निक ब्रूक्स: "ओपन सोर्स" एक अच्छी तरह से परिभाषित शब्द है। और यह व्यक्तिगत या अकादमिक उद्देश्यों के लिए स्रोत कोड देखने के लिए लाइसेंस पर लागू नहीं होता है (जिसके अंतर्गत संदर्भ स्रोत लाइसेंस प्राप्त है)। – dtb
इसके लायक होने के लिए मैंने हमेशा सोचा था कि पहले से ही dllImport'ed स्थिर विधियों के साथ kernel32.interop.dll आदि होना चाहिए था। लेकिन मैंने एक आवश्यक आधार पर अपना खुद का निर्माण करने का प्रयास किया है। पिछले कुछ वर्षों में मैंने पाया है कि मैं शायद ही कभी उनमें से कुछ मुट्ठी भर से अधिक उपयोग करता हूं लेकिन गधे में ऐसा दर्द होता है जब मुझे एक एपीआई की आवश्यकता होती है जिसे मैंने अभी तक आयात नहीं किया है।
कारण SuppressUnmanagedCodeSecurityAttribute का सुरक्षा प्रभाव हो सकता है। Move P/Invokes to NativeMethods class
- 1. प्रोग्रामिंग के iSight तक पहुंच रहा है?
- 2. .NET का उपयोग कर Windows रजिस्ट्री तक पहुंच रहा है?
- 3. iframe माता-पिता DOM तक पहुंच रहा है?
- 4. न्यूटन रैफसन हाइब्रिड एल्गोरिदम समाधान तक नहीं पहुंच रहा है
- 5. handleTurnEventForMatch: didBecomeActive: कॉलबैक केवल कुछ समय तक पहुंच रहा है
- 6. माइक्रोसॉफ्ट.Win32.OpenFileDialog.ShowDialog() वापस शून्य कब करता है?
- 7. डी कंटेनर तक पहुंच
- 8. ओकैमल रिकॉर्ड तक पहुंच
- 9. निजी सदस्यों तक पहुंच
- 10. JAR संसाधनों तक पहुंच
- 11. Flixster डेटा तक पहुंच
- 12. निजी क्षेत्रों तक पहुंच
- 13. रेल तक पहुंच मॉडल
- 14. उपकरण परीक्षण संसाधनों तक पहुंच
- 15. आईफोन संगीत पुस्तकालय तक पहुंच
- 16. Azure MySQL सेवा तक पहुंच
- 17. टेम्पलेट से मॉडल तक पहुंच
- 18. जेएमटर स्क्रिप्ट पथ तक पहुंच
- 19. कच्चे संपर्क डेटा तक पहुंच
- 20. जावा कॉल स्टैक तक पहुंच
- 21. सी: जो तेजी से है, ग्लोबल वैरिएबल तक पहुंच रहा है या फंक्शन
- 22. सी ++ 11 std :: thread :: साझा डेटा तक पहुंच और पहुंच
- 23. जावास्क्रिप्ट से क्लाइंट के 'लोकलहोस्ट' तक पहुंच
- 24. पिक्सेल मानों तक पहुंच ओपनसीवी 2.3 - सी ++
- 25. TWIG टेम्पलेट से सत्र तक पहुंच
- 26. Django टेम्पलेट्स में समानांतर सरणी तक पहुंच?
- 27. HttpRequest पाइपलाइनों में सत्र तक पहुंच
- 28. GoogleTest: एक परीक्षण से पर्यावरण तक पहुंच
- 29. केकपीएचपी: MySQL डेटाबेस तक नहीं पहुंच सकता
- 30. रेल मॉडल तक पहुंच [: नोटिस] मॉडल में
चेक करें जो उम्र लेता है। मैं एक वर्ग में सभी कार्यों तक पहुंच बनाना चाहता हूं। –
जैसा कि @ एसएलक्स ने लिखा है, कई एपीआई फ़ंक्शंस पहले ही .NET Framework में प्रबंधित कक्षाओं के रूप में सामने आए हैं, उदाहरण के लिए, रजिस्ट्री एक्सेस, विंडोज़, जीडीआई। आमतौर पर किसी वेबसाइट से सी # फ़ाइल में कुछ विधि हस्ताक्षर कॉपी करने में इतना समय नहीं लगता है। यदि आप विंडोज एपीआई के आधार पर भारी हैं और .NET Framework का कोई उपयोग नहीं करते हैं, तो अधिक उपयुक्त प्रोग्रामिंग भाषा का उपयोग क्यों न करें? – dtb
सी ++ में एक अच्छा यूआई बनाना एक सिरदर्द है। (आईएमएचओ) –