2012-02-23 11 views
6

मैं अपने प्रोजेक्ट में ऑरियो टच प्रोजेक्ट से कोड ले जाने की कोशिश कर रहा हूं। फ़ाइल FFTBufferManager.h मेंअज्ञात प्रकार का नाम 'वर्ग'; क्या आपका मतलब 'कक्षा' था? AurioTouch

Unknown type name 'class'; did you mean 'Class'? 

उदाहरण के लिए,: लेकिन मैं कई त्रुटियाँ हैं

#include <AudioToolbox/AudioToolbox.h> 
#include <libkern/OSAtomic.h> 

#include "SpectrumAnalysis.h" 

class FFTBufferManager 
{ 
public: 
    FFTBufferManager(UInt32 inNumberFrames); 
    ~FFTBufferManager(); 

मैं LLVM जीसीसी 4.2 करने के लिए संकलक बदलने की कोशिश की है, लेकिन यह अन्य त्रुटियों की एक बहुत कुछ देता है:

Expected '=', ',', ';', 'asm' or '__attribute__' before 'FFTBufferManager' 

मैं क्या गलत कर रहा हूं?

+8

तो बहुत संभव है कि आप भूल गया है एक ', '' में SpectrumAnalysis.h' – KillianDS

+0

मैं यह काम करता है अगर आप को दूर भी शामिल है लगता है? इससे पहले कि आप इसे ठीक करना शुरू करें, उन फ़ाइलों को सही करने का प्रयास करें। – Default

+0

स्पेक्ट्रमएनालिसिस सही है। AurioTouch परियोजना संकलित और ठीक चलाता है। लेकिन जब मैं अपनी परियोजनाओं में अपनी फाइलें जोड़ता हूं, तो बहुत सारी त्रुटियों को पॉप अप करता हूं। – LordPingvin

उत्तर

8

सी ++ और उद्देश्य-सी मिश्रण करने के लिए आपको .mm extension का उपयोग करने की आवश्यकता है। यदि, हालांकि, आपकी कक्षा केवल सी ++ है (और केवल सी/सी ++ हेडर भी शामिल है) तो आप सामान्य .cpp एक्सटेंशन का उपयोग कर सकते हैं।

.mm
इस विस्तार ऑब्जेक्टिव-सी और सी कोड के अलावा सी ++ कोड शामिल कर सकते हैं के साथ एक स्रोत फ़ाइल। इस एक्सटेंशन को का उपयोग केवल तभी किया जाना चाहिए जब आप वास्तव मेंसे अपने उद्देश्य-सी कोड से C++ कक्षाओं या सुविधाओं का संदर्भ लें।

+0

.h फाइलों के बारे में क्या, जहां सी ++ वर्ग परिभाषित किया गया है? किस विस्तार में इसे बदला जाना चाहिए? – peetonn

+0

@peetonn .h ठीक है क्योंकि वे संकलित नहीं होते हैं। आप भी उपयोग करने के लिए स्वतंत्र हैं। एचएच और .एचपीपी। – Joe

+0

@ जो आप कृपया डेटािल में समाधान प्रदान कर सकते हैं क्योंकि मुझे एक ही समस्या है – Developer

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