में, इसलिए, मैं एफएमओडी एपीआई का उपयोग कर रहा हूं और यह वास्तव में एक सी एपीआई है।सी एपीआई फ़ंक्शन कॉलबैक सी ++ सदस्य फ़ंक्शन कोड
यह बुरा या कुछ भी नहीं है। इसकी बस यह सी ++ कोड के साथ अच्छी तरह से इंटरफेस नहीं करता है।
उदाहरण के लिए,
FMOD_Channel_SetCallback(channel, callbackFunc) ;
का उपयोग कर यह callbackFunc
के लिए एक सी शैली समारोह चाहता है, लेकिन मैं इसे एक वर्ग के एक सदस्य समारोह पास करना चाहते हैं।
मैं इसके लिए Win32 चाल का उपयोग कर समाप्त हुआ, जिससे सदस्य कार्य स्थिर हो गया। यह फिर एफएमओडी में कॉलबैक के रूप में काम करता है।
अब मुझे कुछ सदस्यों को स्थिर करने के लिए अपने कोड को अलग करना है, केवल एफएमओडी के सी-नेस के लिए खाते हैं।
मुझे आश्चर्य है कि एफएमओडी में यह संभव है या यदि किसी विशिष्ट सी ++ ऑब्जेक्ट के इंस्टेंस सदस्य फ़ंक्शन (स्थिर फ़ंक्शन नहीं) पर कॉलबैक को जोड़ने के लिए कोई काम है। यह बहुत चिकना होगा।
+1 हां, आपको एक ट्रैम्पोलिन बनाना है, लेकिन वे बहुत गड़बड़ कर रहे हैं (यदि आप ग्लोबल्स से बचना चाहते हैं, और वह सब कुछ)! :-(यदि एपीआई को पहले स्थान पर सही ढंग से डिज़ाइन किया गया था .... –
आपको सी ++ सदस्य फ़ंक्शंस फेंकने के बारे में चिंता करने की भी आवश्यकता है। और यह "ट्रैम्पोलिन" शब्द कहां से आया? –
@NeilButterworth - I याद नहीं है कि मैंने पहली बार इसे "ट्रैम्पोलिन" के रूप में वर्णित किया था, लेकिन मेरे उपयोग के लिए एक संदर्भ विकिपीडिया (http://en.wikipedia.org/wiki/Trampoline_%28computers%29) है, जब कोड के टुकड़ों को इंटरफेस करते समय असंगत कॉलिंग सम्मेलन, कॉलर के सम्मेलन को कैली के सम्मेलन में बदलने के लिए एक ट्रैम्पोलिन का उपयोग किया जाता है। –