डी में गतिशील रूप से डीएलएल से कार्यों को गतिशील रूप से लोड करने और कॉल करने का कोई तरीका है? मैं चाहता हूं कि मेरा प्रोग्राम स्टार्टअप और शायद ऑन-द-फ्लाई पर प्लगइन लोड करने में सक्षम हो।लोडिंग प्लगइन्स (डीएलएल) ऑन-द-फ्लाई
उत्तर
यह इस बात पर निर्भर करता है कि आप कितनी गतिशील प्राप्त करना चाहते हैं। यदि आप गतिशील रूप से एक डीएलएल लोड करना चाहते हैं और कुछ पूर्वनिर्धारित कार्यों को चलाने के लिए चाहते हैं, तो वी ली here द्वारा एक बहुत अच्छा रैपर है। टेम्पलेट्स की शक्ति के लिए धन्यवाद, यह आपको इस तरह की चीजों को करने की अनुमति देता है:
// define functions
alias Symbol!("MessageBoxW", int function(HWND, LPCWSTR, LPCWSTR, UINT)) mbw;
alias Symbol!("MessageBoxA", int function(HWND, LPCSTR, LPCSTR, UINT)) mba;
// load dll
auto dll = new Module!("User32.dll", mbw, mba);
// call functions
dll.MessageBoxW(null, "Hello! DLL! ", "Hello from MessageBoxW", MB_OK);
dll.MessageBoxA(null, "Hello! DLL! ", "Hello from MessageBoxA", MB_OK);
कोड डी 1 है। डी 2 के लिए, आपको के साथ प्रतिस्थापित करना होगा, toStringz()
का उपयोग करें और संभवतः scope
हटा दें। संपादित करें: इस कोड केmy D2 port इस प्रश्न को ढूंढने वाले अन्य लोगों के लिए उपयोगी हो सकता है।
मेरी इच्छा है कि मेरे पास अधिक +1 +1 अंक हों। यही वह है जिसकी तलाश में मैं हूं। धन्यवाद! –
@ टिमोथी: खुशी हुई यह मदद की। मेरे लिए, कोड एक अच्छा उदाहरण है कि आप टेम्पलेट्स और मिक्सिन का उपयोग करके कोड की कुछ पंक्तियों के साथ कितना हासिल कर सकते हैं। यह लगभग पायथन की तरह लगता है। – stephan
मुझे एहसास है कि यह कुछ महीने पुराना है, लेकिन डी 2.0 अपडेट के लिए एक टन धन्यवाद! मैं यह भी चाहता हूं कि हाथ से बाहर निकलने के लिए मुझे अधिक उत्साह मिले! –
- 1. एमईएफ लोडिंग डीएलएल जिन्हें जीएसी
- 2. लोडिंग हास्केल प्लगइन्स ऑन-द-फ्लाई
- 3. डीएलएल लोडिंग में देरी हो रही है?
- 4. किसी नेटवर्क से एमईएफ लोडिंग प्लगइन्स साझा फ़ोल्डर
- 5. डेल्फी आवेदन के लिए प्लगइन्स सिस्टम - बीपीएल बनाम डीएलएल?
- 6. अनुमोदित सी # प्लगइन्स आवेदन हुक पर पंजीकरण
- 7. डीएलएल
- 8. वीआईएम प्लगइन्स
- 9. TiddlyWiki प्लगइन्स
- 10. ग्रहण प्लगइन्स
- 11. pgadmin प्लगइन्स?
- 12. डीएलएल
- 13. डीएलएल
- 14. प्लगइन डीएलएल जो अन्य डीएलएल
- 15. आलसी लोडिंग, डिफर्ड लोडिंग और उत्सुक लोडिंग एंटिटी फ्रेमवर्क
- 16. एएसपीनेट बिन निर्देशिका - डीएल लोडिंग
- 17. एक अन्य डीएलएल
- 18. रेल 3: आलसी लोडिंग बनाम आलसी लोडिंग
- 19. रेल में उत्सुक लोडिंग और आलसी लोडिंग
- 20. लागू आलसी लोडिंग बनाम आलसी लोडिंग
- 21. ग्रहण/MySQL एकीकरण प्लगइन्स?
- 22. रूबी जिओलोकेशन जेम/प्लगइन्स
- 23. Autoupdate वीआईएम प्लगइन्स?
- 24. मोटोडे कोर प्लगइन्स
- 25. रिलीज + संस्करण प्लगइन्स
- 26. ट्विटर बूटस्ट्रैप्स प्लगइन्स (jQuery)
- 27. एक्सकोड प्लगइन्स कैसे लिखें?
- 28. ग्रहण पर स्थापित प्लगइन्स
- 29. Jquery टाइमलाइन प्लगइन्स
- 30. बहुत सारे jquery प्लगइन्स?
हां। यहां एक त्वरित संदर्भ दिया गया है: http://www.digitalmars.com/d/2.0/dll.html –
यही वह है जो मुझे डर था ... मूल रूप से हम proc पता प्राप्त करने और जाने से सी विधि का उपयोग कर अटक गए हैं क्या आप वहां मौजूद हैं। मुझे लगता है कि भयानक नहीं है, क्योंकि मैं अपनी सभी प्लगइन ऑब्जेक्ट्स को "मास्टर फैक्ट्री" में लपेट सकता हूं, लेकिन इष्टतम नहीं। –