lib गोली में एक प्रकार परिभाषित किया गया है:इसे कैसे बढ़ाया जाए :: बाइंड (& myClass :: मजेदार, यह, _1, _2, _3) टाइपपीफ शून्य (* मजेदार) (arg1, arg2, arg3) पर?
typedef void (*btNearCallback)(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, const btDispatcherInfo& dispatchInfo);
वहाँ डॉक्स में
वहाँ प्रस्तुत किया है एक sample of usage (page 23):
void MyNearCallback(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, const btDispatcherInfo& dispatchInfo) {
// Do your collision logic here
// Only dispatch the Bullet collision information if you want the physics to continue
dispatcher.defaultNearCallback(collisionPair, dispatcher, dispatchInfo);
}
मैं तो मेरी कक्षा इस समारोह मिला मेरी कक्षा defention में इस नमूना कोड की नकल की और
dispatcher->setNearCallback(boost::bind(&BulletAPIWrapper::MyNearCallback, this, _1, _2, _3));
बजाय सी की तरह
dispatcher->setNearCallback(MyNearCallback);
गोली ट्यूटोरियल से: मैं की तरह इस तरह के डाले करने के लिए सक्षम हो जाएगा।
Error 44 error C2664: 'btCollisionDispatcher::setNearCallback' : cannot convert parameter 1 from 'boost::_bi::bind_t<R,F,L>' to 'btNearCallback'
तो मुझे आश्चर्य है कि इस तरह के typedef को बढ़ावा :: बाँध कास्ट करने के लिए कैसे:
फिर भी मेरी VS2010 SP1 मुझे एक त्रुटि देता है?
यह संभव होने स्थिर वर्ग समारोह चल रहा है (या की तरह कम से कम वैश्विक समारोह में):
void MyNearCallback(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, const btDispatcherInfo& dispatchInfo, BulletAPI* api) {
}
कॉल dispatcher->setNearCallback(boost::bind(MyNearCallback, _1, _2, _3, this));
क्योंकि यह मेरे लिए लगभग एक ही त्रुटि परिणाम:
Error 44 error C2664: 'btCollisionDispatcher::setNearCallback' : cannot convert parameter 1 from 'boost::_bi::bind_t<R,F,L>' to 'btNearCallback'
मैंने as described here:
भी कोशिश की 210अभी तक मैं ऐसे त्रुटि इसे से बाहर हो गया:
error C2664: 'btCollisionDispatcher::setNearCallback' : cannot convert parameter 1 from 'void (__cdecl *)(btBroadphasePair &,btCollisionDispatcher &,const btDispatcherInfo &)' to 'btNearCallback'
एक ही रास्ता मैं के बारे में पता जटिल और कष्टप्रद है, इसलिए +1, हो सकता है किसी को एक और संभावना को उजागर कर सकते हैं। –
इसी तरह के प्रश्न ... अभी तक एकमात्र संकल्प "एक छोटा रैपर लिखें" है: http://stackoverflow.com/questions/13238050 या http://stackoverflow.com/questions/10555464 या http://stackoverflow.com/प्रश्न/10938774 –