मैं एक डीएलएल से कार्यों को कॉल करने की कोशिश कर रहा हूं जो डेल्फी में बनाया जाने लगता है। DLL द्वारा समर्थित एक कुछ कार्यों का एक उदाहरण हैं:क्या पाइथन डीएलएलआई में डेल्फी कार्यों को कॉल कर सकता है?
function oziDeleteWpByName(var name:pansichar):integer;stdcall
पायथन कोड मैं लिखा है ऊपर कार्यों काम नहीं कर रहा उपयोग करने के लिए।
from ctypes import *
libc = cdll.OziAPI
name ='test'
pi = pointer(name)
delname = libc.oziDeleteWpByName
delname(name)
ऐसा लगता है कि मैं फ़ंक्शन में गलत डेटा प्रकार गुजर रहा हूं। इसे सही तरीके से करने के बारे में कोई विचार?
धन्यवाद यह काम करता है। अब कृपया इस फ़ंक्शन के साथ सहायता करें:
फ़ंक्शन oziGetOziVersion (var संस्करण: pansichar; var डेटा लम्बाई: पूर्णांक): पूर्णांक; stdcall; OziExplorer का संस्करण संस्करण चर में वापस किया गया है।
अब मैं 'var संस्करण' कैसे पास करूं, जब इसे वापस किया जाएगा।
'var name: pansichar' का तात्पर्य है कि' name' पैरामीटर को संशोधित किया जा सकता है और कॉलर पर वापस कर दिया जा सकता है। क्या समारोह वास्तव में ऐसा करता है? क्या आप फंक्शन रिटर्न के बाद 'name' की सामग्री को पढ़ने की योजना बना रहे हैं? –
इसके अलावा, आप पाइथन का किस संस्करण का उपयोग कर रहे हैं? स्ट्रिंग एन्कोडिंग में कोई फर्क पड़ सकता है। –
हाँ, कि 'var' घोषणा फिश है। यदि आप, उपयोगकर्ता 1138 ... ने लिखा कि डीएलएल, आपने ऐसा क्यों किया? –