2010-07-25 15 views
24

के अंदर सी हेडर समेत मेरे पास एक सी ++ प्रोग्राम (.cpp) है जिसके अंदर मैं कुछ फ़ंक्शन का उपयोग करना चाहता हूं जो सी हेडर फ़ाइलों जैसे stdio.h, conio.h, stdlib.h के अंदर मौजूद हैं। , graphics.h, devices.h आदिसी ++ प्रोग्राम

मैं अपनी सीपीपी फ़ाइल के अंदर stdio.h लाइब्रेरी को शामिल कर सकता हूं: #include <cstdio>। मैं अन्य लाइब्रेरी फ़ाइलों को कैसे शामिल करूं?

मैं ग्राफिक्स.h लाइब्रेरी कैसे जोड़ूं?

मैं माइक्रोसॉफ्ट विजुअल स्टूडियो 6.0 एंटरप्राइज़ संस्करण और टर्बो सी ++ 3.0 का उपयोग कर रहा हूं।

+1

यह nitpicking की तरह लग सकता है, या यह मैं एक मामूली व्याकरणिक त्रुटि हो, लेकिन यह त्रुटि अक्सर सी लिंकेज की मौलिक गलतफहमी को इंगित करती है। आप एक पुस्तकालय फ़ाइल शामिल नहीं कर सकते हैं। आप हेडर फ़ाइल शामिल कर सकते हैं। हेडर लाइब्रेरी नहीं है। पुस्तकालय हेडर नहीं है। आप graph.h.h हेडर को शामिल कर सकते हैं, और उसके बाद आपको उस लाइब्रेरी के साथ लिंक करना होगा जिसका एपीआई हेडर में निर्दिष्ट है। –

उत्तर

43

सी मानक सी हेडर (stdio, stdlib, assert, ...) की एक सूची के लिए, एक सी तैयार करें और .h को हटा दें। उदाहरण के लिए stdio.h cstdio बन जाता है।

अन्य हेडर के लिए, का उपयोग

extern "C" 
{ 
    #include "other_header.h" 
} 
3

बस उन्हें extern "C" ब्लॉक के अंदर शामिल करें, उन्हें अपेक्षित काम करना चाहिए।

3

मुझे यकीन है कि क्या आप वास्तव में जरूरत नहीं हूँ, लेकिन क्या आप के अंदर पुराने जमाने सी कार्यों का उपयोग करने के लिए सी ++ प्रोग्राम चाहते हैं, तो आप उन्हें हटाने के द्वारा शामिल आसान कर सकते हैं। एच और एक "सी" उपसर्ग जोड़ें।

उदाहरण के लिए आप math.h उपयोग

#include <cmath> 
1

आप उनके मूल नाम का उपयोग कर उन्हें #include कर सकते हैं शामिल करना चाहते हैं। #include <stdio.h> सी ++ में ठीक काम करता है।

+0

सी मानक शीर्षलेखों को मानक सी ++ में काम करने की आवश्यकता होती है, हालांकि आप वैश्विक नामस्थान में अपने जैसे अधिक डाल सकते हैं। गैर-मानक शीर्षलेख, जैसे conio.h या graphics.h, को ठीक से सेट नहीं किया जा सकता है, और इसे 'बाहरी "सी" {...} 'में लपेटने की आवश्यकता हो सकती है। अपने कार्यान्वयन दस्तावेज की जांच करें। –

26
#ifdef __cplusplus 
extern "C" 
{ 
#endif 

// your functions here for the header 

#ifdef __cplusplus 
} 
#endif 

इस प्रारूप आप किसी भी समस्या के बिना दोनों C और C++ के लिए शीर्षक फ़ाइलें प्रयोग करने में मदद करनी चाहिए ...

आशा इस मदद करता है ... :)

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