मैं पाइथन में WinDLL कैसे आयात करूं और अपने सभी कार्यों का उपयोग करने में सक्षम हूं? इसे केवल युगल और तारों की आवश्यकता है।पायथन आयात डीएल
उत्तर
आपने प्रश्न ctypes पर टैग किया है और ऐसा लगता है कि आप पहले ही जवाब जानते हैं।
ctypes tutorial उत्कृष्ट है। एक बार जब आप पढ़ लें और समझ लें कि आप इसे आसानी से कर पाएंगे।
उदाहरण के लिए:
>>> from ctypes import *
>>> windll.kernel32.GetModuleHandleW(0)
486539264
और अपने खुद के कोड से एक उदाहरण:
lib = ctypes.WinDLL('mylibrary.dll')
#lib = ctypes.WinDLL('full/path/to/mylibrary.dll')
func = lib['myFunc']#my func is double myFunc(double);
func.restype = ctypes.c_double
value = func(ctypes.c_double(42.0))
ठीक है, मुझे पता था कि मुझे ctypes की आवश्यकता है, लेकिन मुझे नहीं पता था कि उनका उपयोग कैसे किया जाए। :) इसके अलावा, बहुत अच्छा लिंक! पाइथन दस्तावेज केवल संदर्भ के लिए अच्छा लगता है, लेकिन वास्तविक शिक्षा नहीं। अनेक अनेक धन्यवाद! – pajm
रुको! मुझे लगता है कि मैंने आपके कोड को अनदेखा किया है। ट्यूटोरियल को देखने के बाद, ऐसा लगता है कि विंडोज़ डीएलएल कैसे लोड करें। मुझे एक कस्टम डीएलएल फ़ाइल लोड करने की जरूरत है। यह मैं कैसे करूंगा? – pajm
@ पैट्रिक मैंने एक और उदाहरण जोड़ा है। लेकिन यह सब ट्यूटोरियल में है। अपने स्वयं के डीएलएल और विंडोज डीएलएल को कॉल करने के बीच कोई सैद्धांतिक अंतर नहीं है। –
डीएलएल तक पहुंचने के लिए, और उनके लिए पाइथन बाइंडिंग उत्पन्न करने के लिए Cython का उपयोग करें।
मैं अपने अनुभव पोस्टिंग कर रहा हूँ। सबसे पहले सभी कड़ी मेहनत के बावजूद मुझे सभी टुकड़ों को एक साथ रखने के लिए, सी # डीएल आयात करना आसान है। जिस तरह से मैंने किया है:
1) इस nuget पैकेज को स्थापित करें (मैं मालिक नहीं हूँ, बस बहुत उपयोगी है) के लिए एक अप्रबंधित dll का निर्माण करने में: https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports
2) आपका सी # dll कोड की तरह है इस:
import ctypes
#Here you load the dll into python
MyDllObject = ctypes.cdll.LoadLibrary("C:\\My\\Path\\To\\MyDLL.dll")
#it's important to assing the function to an object
MyFunctionObject = MyDllObject.MyFunctionName
#define the types that your C# function return
MyFunctionObject.restype = ctypes.c_wchar_p
#define the types that your C# function will use as arguments
MyFunctionObject.argtypes = [ctypes.c_wchar_p]
#That's it now you can test it
print(MyFunctionObject("Python Message"))
- 1. पायथन में सी # डीएल कैसे लोड करें?
- 2. पायथन: आयात त्रुटि: _md5
- 3. पायथन: एक "आयात फ़ाइल"
- 4. पायथन: 'आयात *' बनाम execfile
- 5. पायथन आयात विवरण अर्थशास्त्र
- 6. पायथन: अनुकूलन आयात
- 7. कैसे पायथन आयात विफलता
- 8. पायथन आयात यांत्रिकी
- 9. पायथन: "आयात POSIX" सवाल
- 10. रूबी एक .NET डीएल आयात कर सकते हैं?
- 11. 32 बिट डीएल 64 बिट में आयात करना। नेट एप्लिकेशन
- 12. डीएल
- 13. डीएल
- 14. डीएल
- 15. डीएल
- 16. स्टैंड डीएल
- 17. पायथन आयात त्रुटि "डीएलएल लोड विफल" | पायथन
- 18. पायथन में एक डीएल से कक्षा तक कैसे पहुंचे?
- 19. Aptana 3 अनसुलझा आयात - पायथन
- 20. पायथन थ्रेडिंग मॉड्यूल आयात विफलता
- 21. पायथन, विंडोज सेवा आयात त्रुटि
- 22. पायथन पथ और आयात आदेश
- 23. पायथन आयात त्रुटि: साइथन। डिस्टुटिल्स
- 24. पायथन: युक्त पैकेज आयात करें
- 25. पायथन: गैर-सापेक्ष आयात बल?
- 26. सी ++ डीएल कॉलबैक
- 27. पायथन त्रुटि: आयात त्रुटि: नाम आयात नहीं कर सकता Akismet
- 28. पायथन आयात कार्य VS पर आयात। मॉड्यूल स्तर
- 29. 32 बिट डीएल को 64 बिट डीएल
- 30. एफएसएक्स स्क्रिप्ट एक डीएल संदर्भित कई डीएल
क्या कैसे यह काम नहीं करता आप अब तक की क्या ज़रूरत है, और:
3) आपका अजगर कोड इस तरह है? –
इस प्रश्न के साथ डुप्लिकेट करें? http://stackoverflow.com/questions/252417/how-can-i-use-a-dll-from-python – payne