से पाइथन कार्यों को कॉल करना मैं सी ++ से कॉल पायथन कार्यों को प्राप्त करने का प्रयास कर रहा हूं। मैंने सोचा कि इसे फ़ंक्शन पॉइंटर्स के माध्यम से हासिल किया जा सकता है, लेकिन ऐसा प्रतीत नहीं होता है। मैं इसे पूरा करने के लिए boost.python
का उपयोग कर रहा हूं।सी ++
कहो एक समारोह अजगर में परिभाषित किया गया है:
def callback(arg1, arg2):
#do something
return something
अब मैं इतना है कि यह वहाँ से कहा जा सकता है, सी ++ को यह समारोह पारित करने के लिए की जरूरत है। इसे प्राप्त करने के लिए boost.python
का उपयोग करके मैं C++ पक्ष पर कोड कैसे लिखूं?
Thnks मैथ्यू, मेरे पास एक अतिरिक्त सवाल है। यहां पाइथन ऑब्जेक्ट को उसी धागे से बुलाया जा रहा है। क्या होगा अगर पाइथन ऑब्जेक्ट वैश्विक था और उसे अलग थ्रेड से बुलाया जा रहा था? – Amar
यह संभव है, हालांकि कुछ सवाल इस प्रश्न के दायरे से बाहर है। मैं सी/पायथन एपीआई के PyGILState_ * कार्यों के परिवार की जांच करने की सलाह देता हूं। बूस्ट-पायथन के विपरीत, पायथन के बहुत अच्छे दस्तावेज़ हैं। अगर आपको अभी भी और मदद की ज़रूरत है, तो एक और सवाल पूछें। –
भविष्य के दर्शकों के लिए: किसी ने आखिरकार दूसरे प्रश्न पूछा, और मैंने इसका उत्तर दिया। यहां देखें: stackoverflow.com/questions/8009613/boost-python-not-supporting-parallelism/8011153#8011153 –