में सी ++ लाइब्रेरी का उपयोग करना मेरे पास एक सी ++ लाइब्रेरी है जो डेटा के प्रबंधन के लिए विभिन्न कक्षाएं प्रदान करती है। मेरे पास पुस्तकालय के लिए स्रोत कोड है।सी कोड
मैं सी फ़ंक्शन कॉल का समर्थन करने के लिए सी ++ एपीआई का विस्तार करना चाहता हूं ताकि पुस्तकालय को सी कोड और सी ++ कोड के साथ एक ही समय में उपयोग किया जा सके।
मैं जीएनयू उपकरण श्रृंखला (जीसीसी, ग्लिबैक इत्यादि) का उपयोग कर रहा हूं, इसलिए भाषा और वास्तुकला समर्थन कोई मुद्दा नहीं है।
क्या कोई कारण हैं कि यह तकनीकी रूप से संभव नहीं है?
क्या कोई गोटाचा है जिसे मुझे देखने की आवश्यकता है?
क्या इसके बारे में संसाधन, उदाहरण कोड और/या दस्तावेज उपलब्ध हैं? अपने सी ++ हेडर सी कोड द्वारा इस्तेमाल किया जा करने की जरूरत है कि रैप करने के लिए निम्नलिखित
- उपयोग:
कुछ अन्य चीजें हैं जो मुझे पता चला है।
#ifdef __cplusplus
extern "C" {
#endif
//
// Code goes here ...
//
#ifdef __cplusplus
} // extern "C"
#endif
- रखें अलग हेडर फाइल में 'असली' सी ++ इंटरफेस है कि सी से शामिल नहीं हैं PIMPL principle यहाँ सोचो।
#ifndef __cplusplus #error
सामग्री का उपयोग करके किसी भी पागलपन का पता लगाने में मदद मिलती है। - सी कोड
- में नाम के रूप में सी ++ पहचानकर्ताओं की सावधानी बरतें सी और सी ++ कंपाइलर्स के बीच आकार में भिन्नताएं। यदि आप जीएनयू उपकरण श्रृंखला का उपयोग कर रहे हैं तो शायद कोई समस्या नहीं है, लेकिन फिर भी, सावधान रहें।
structs के लिए निम्नलिखित फॉर्म का पालन करें ताकि सी उलझन में न हो।
typedef struct X { ... } X
फिर चारों ओर सी ++ वस्तुओं पारित करने के लिए संकेत का उपयोग, वे तो बस जहां एक्स सी ++ वस्तु है struct एक्स के रूप में सी में घोषित किया जाना है।
यह सब एक दोस्त की सौजन्य है जो सी ++ पर एक जादूगर है।
कुछ हद तक देर हो चुकी है, लेकिन मैं सी ++ के लिए सी आवरण के बारे में एक छोटे से howto लिखा है: http://www.teddy.ch/c++_library_in_c/ – Teddy