2012-06-05 6 views
5

मुझे नहीं मिल सकता है कि Smoke क्या है। मुझे उम्मीद है कि धुआं सी ++ कोड के लिए सी रैपर उत्पन्न करेगा और जेनरेट किए गए कार्यों के साथ हेडर फ़ाइल बनाएंगी।केडीई के धुआं का उपयोग कैसे करें?

लेकिन सी ++ हेडर पर smokegen चलाना मुझे छोटा हेडर देता है, जो सिर्फ Smoke कक्षा और <sourcename>_smoke_init() फ़ंक्शन पर पॉइंटर निर्यात करता है।

मुझे इसके साथ क्या करना चाहिए?

+1

rtfm? या कोई मैनुअल नहीं है? उसके स्रोत कोड को तब पढ़ें? – Abyx

उत्तर

7

धुआं एक रनटाइम बाध्यकारी जनरेटर है, जैसे कि आप जानते हैं कि गोभी-आत्म-निरीक्षण की तरह।

इसका मतलब है कि यह आपके द्वारा बाध्यकारी कोड के बारे में जानकारी उत्पन्न करता है और इसे लाइब्रेरी के रूप में उपलब्ध कराता है। जेनरेट की गई लाइब्रेरी का उपयोग करने के लिए, आपको उस कोड के बारे में जानकारी प्राप्त करने के लिए धुआं एपीआई (जो एक सी ++ एपीआई है) के खिलाफ कोड लिखना होगा जिसके लिए आपने बाइंडिंग जेनरेट की है, और उस कोड में फ़ंक्शन कॉल करने के लिए धुआं API का उपयोग करें रैपिंग।

पेज http://techbase.kde.org/Development/Languages/Smoke में उदाहरण दिखाता है कि आप API का उपयोग कोड आप (बनाने क्यूटी विजेट हैलो दुनिया यहाँ उदाहरण)

धुआँ एपीआई यहाँ शुरू की है कुछ मुश्किल भागों के लिए http://techbase.kde.org/Development/Languages/Smoke/API_Documentation, लेकिन बाध्यकारी हैं में कॉल करने के लिए मुझे मिली जानकारी का मुख्य स्रोत स्मोक.h हेडर है।

मैंने धूम्रपान पर आधारित क्यूटी-पायथन बाध्यकारी लिखने के अपने प्रयास में धूम्रपान करने के लिए एक सी बाध्यकारी (https://github.com/pankajp/pysmoke/blob/master/include/smokec.h) विकसित किया है, जो पहले से ही कुछ सरल कार्यक्रमों के लिए काम करता है। यदि आप सी

से धुआं का उपयोग करना चाहते हैं तो आप इसे शुरुआती बिंदु के रूप में पा सकते हैं, इसके बजाय, आप सी में उप-वर्ग बनाने के बारे में परेशान किए बिना, सी में एक छोटी सी सी ++ लाइब्रेरी को उजागर करने में रुचि रखते हैं (किसी भी तरह से) और आभासी या संरक्षित विधि को ओवरराइड करना, यह है कि आप मौजूदा कोड को बिना किसी तरीके से विस्तारित करना चाहते हैं, तो आप बाइंडिंग मैन्युअल रूप से लिखने से बेहतर हो सकते हैं (जैसा कि मैंने धूम्रपान सी ++ एपीआई के लिए किया था, हालांकि मैंने वहां भी प्रदान किया था फ़ंक्शन पॉइंटर पास करके सी में वर्चुअल विधियों को लागू करने का एक तरीका)

संबंधित मुद्दे