हम अपने सी ++ कोड के अंदर किसी भी सी लाइब्रेरी का उपयोग कैसे कर सकते हैं? (हम? कि पर कोई tuts? सकता है) (मैं VS10 का उपयोग करें और अब इस तरह के x264 और OpenCV के रूप में libs बारे में बात कर)हम अपने सी ++ कोड के अंदर किसी भी सी लाइब्रेरी का उपयोग कैसे कर सकते हैं?
उत्तर
ठीक है आप अपने सी ++ कोड से किसी भी सी लाइब्रेरी का उपयोग कर सकते हैं। सी ++ :-) के साथ यह एक अच्छी चीज है, आपको बस अपने सी ++ कोड में लाइब्रेरी हेडर शामिल करना होगा और आपके द्वारा उपयोग की जाने वाली लाइब्रेरी से लिंक करना होगा।
कोई भी अच्छी लाइब्रेरी सी ++ से अपने हेडर समावेशन को संभालती है।
#ifdef __cplusplus
extern "C" {
#endif
#include "c_header.h"
#ifdef __cplusplus
}
#endif
संपादित करें:: जैसा कि माइक ने कहा, ifdef भागों केवल यदि आप नहीं जानते की जरूरत है अपनी फ़ाइल सी या सी के साथ इस्तेमाल किया जाएगा यदि ++ यदि यह मामला नहीं है तो आप इसे अपने आप को तरह बातें साथ क्या करना है । उदाहरण के लिए फ़ाइल एपीआई हेडर का हेडर है, तो आप उन्हें रख सकते हैं।
वैसे, ओपनसीवी सी या सी ++ द्वारा समावेशन को संभालता है (इस प्रकार आपके पास पहले से ही ओपनसीवी हेडर में #ifdef भाग है)। मैं x264 के लिए नहीं पता ...
my2cents
हाँ, केवल एक चीज आपको बस इतना करना extern "C"
साथ #include
बयान रैप करने के लिए सी ++ बताने के लिए है संकलक समारोह के नाम और इस तरह के लिए C-अर्थ विज्ञान का उपयोग करें:
extern "C" {
#include <library.h>
}
जोड़ने के दौरान, बस किसी भी सामान्य सी ++ lib तरह पुस्तकालय जोड़ें।
कि जब तक सी हेडर नाम के रूप में ('new' या' private') की तरह किसी भी सी ++ कीवर्ड का उपयोग नहीं करता ठीक है। –
और कॉलिंग फ़ंक्शंस के बारे में - अगर मेरे पास लाइब्रेरी में 'write_frame' था। सी ++ में मैं इसे सामान्य फ़ंक्शन की तरह कॉल कर सकता हूं? – Rella
@ ओले: हाँ, जब तक इसे 'बाहरी' सी घोषित किया जाता है, 'आप इसे किसी अन्य फ़ंक्शन की तरह कॉल कर सकते हैं। –
जहां तक मुझे पता है, यदि आपके पास लाइब्रेरी है जिसका उपयोग आप करना चाहते हैं, तो आप बस अपनी हेडर फ़ाइल में शामिल करें और आप इसका उपयोग कर सकते हैं। वहां से ।
आपको सी ++ कंपाइलर को बताने के लिए 'बाहरी' सी "' की आवश्यकता है, जिसमें लाइब्रेरी फ़ंक्शंस में सी-स्टाइल लिंकेज है, और कुछ सी शीर्षलेखों में ऐसे नाम हो सकते हैं जो C++ में अमान्य हैं। –
- 1. हम निर्माता के अंदर 'इस' सूचक का उपयोग कर सकते
- 2. क्या हम #ifdef __cplusplus के बिना सी फ़ाइल में बाहरी "सी" का उपयोग कर सकते हैं?
- 3. हम सी या सी ++ कोड में सीधे एड्रेसिंग का उपयोग क्यों नहीं कर सकते?
- 4. अंदर सी # का उपयोग कर
- 5. प्रीप्रोकैसिंग के बाद जीसीसी आउटपुट सी कोड कर सकते हैं?
- 6. हम सी ++ संकलक द्वारा कोड instantiated टेम्पलेट देख सकते हैं
- 7. सी ++ जावा कोड कॉल कर सकते हैं?
- 8. जा सकते हैं कोड विंडोज़ में डीएल उत्पन्न कर सकते हैं या सी ++/सी # कॉल गोलांग कोड कर सकते हैं?
- 9. क्या मैं किसी भी तरह जावा एंड्रॉइड प्रोजेक्ट में सी # कोड या सी # लाइब्रेरी का उपयोग कर सकता हूं?
- 10. क्या हम अपने एंड्रॉइड फोन के माइक्रोफोन ड्राइवर का उपयोग कर सकते हैं
- 11. हम सी ++ में बैच फ़ाइल का उपयोग कैसे कर सकते हैं?
- 12. क्या हम हाइबरनेट में संघ का उपयोग कर सकते हैं?
- 13. सी प्रीप्रोसेसर: #define के अंदर #if का उपयोग कर?
- 14. प्रतिबिंब। हम इसका उपयोग करके क्या हासिल कर सकते हैं?
- 15. क्या हम एक LinearLayout के अंदर स्क्रॉलव्यू का उपयोग कर सकते हैं?
- 16. जब हम ClearAllPools विधि का उपयोग कर सकते हैं?
- 17. हम nstimer के बजाय क्या उपयोग कर सकते हैं?
- 18. क्या हम संघ में सूचक का उपयोग कर सकते हैं?
- 19. हम टॉमकैट सर्वर का उपयोग कर जेएनडीआई को कैसे कॉन्फ़िगर कर सकते हैं?
- 20. क्या हम एक एनजेन-एड असेंबली (ILDasm का उपयोग कर) को अलग कर सकते हैं?
- 21. किसी को भी पता है जहां सी # कोड या एक dll जो नमूना क्रेडिट कार्ड नंबर उत्पन्न कर सकते हैं
- 22. क्या हम बिजली की खपत को कम करने के लिए कोड अनुकूलित कर सकते हैं?
- 23. हम उद्देश्य सी में फ़ाइल को कैसे अनजिप कर सकते हैं?
- 24. क्या हम एक क्यूआर-कोड का आकार बदल सकते हैं?
- 25. सी फाइलों को संकलित करने के लिए सी ++ का उपयोग कर सकते हैं?
- 26. हम जावा में पॉइंटर्स का उपयोग क्यों नहीं कर सकते?
- 27. कोई भी अच्छी सी/सी ++ डीएसपी लाइब्रेरी?
- 28. सी #। किसी भी स्ट्रिंग
- 29. मैं अपने कोड एएसपीनेट सी #
- 30. एक क्यूआर कोड में हम कितना डेटा/जानकारी सहेज सकते हैं/स्टोर कर सकते हैं?
यदि आपको पता है कि आप सी ++ लिख रहे हैं तो आपको '#ifdef __cplusplus' की आवश्यकता नहीं है। यह केवल एक शीर्षलेख में आवश्यक है जो दोनों भाषाओं द्वारा शामिल करने के लिए डिज़ाइन किया गया है। –
@ माइक: बेशक आप सही हैं। मैंने शायद बहुत सारे ढांचे/libs लिखा है :) मेरी बुरी आदतों के लिए खेद है;) – neuro