2011-07-27 2 views
1

i construit une bibliothèque statique et ajouter le fichier .h à mon projet,C++ et Objective-c

dans toute la classe dans les .h fichiers, quelque chose comme ceci:

class StartOp 
{ 
    static void openFiles(WavInFile **inFile, WavOutFile **outFile, const RunParameters *params); 
    static void setup(SoundTouch *pSoundTouch, const WavInFile *inFile, const RunParameters *params); 
    static void process(SoundTouch *pSoundTouch, WavInFile *inFile, WavOutFile *outFile); 
    static void detectBPM(WavInFile *inFile, RunParameters *params); 
    int start(const int nParams, const char * const paramStr[]); 
}; 

je suis arrivé ce erreur:

StartOp.h:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'StartOp' 

** EDIT * *

Je résous ce problème en changeant le fichier ex en mm. maintenant je veux utiliser ce code et je veux appeler de cette classe, ce code est une c classe ++ que je veux l'appeler d'une classe objective-c:

#ifndef _STARTOP_H_ 
#define _STARTOP_H_ 

namespace soundtouch 
{ 

    class StartOp 
    { 
     static void openFiles(WavInFile **inFile, WavOutFile **outFile, const RunParameters *params); 
     static void setup(SoundTouch *pSoundTouch, const WavInFile *inFile, const RunParameters *params); 
     static void process(SoundTouch *pSoundTouch, WavInFile *inFile, WavOutFile *outFile); 
     static void detectBPM(WavInFile *inFile, RunParameters *params); 
     static int start(const int nParams, const char * const paramStr[]); 
    }; 
} 



#endif 

au static int start(const int nParams, const char * const paramStr[]);

méthode de mon application iphone objectif-c.

+4

Ressemble plus à C++ –

+0

Ceci n'est ni C ni Objective-C ... –

Répondre

4

Le code que vous avez posté n'est pas C; c'est plutôt C++. Maintenant, Objective-C et C++ peuvent interopérer, mais vous devez utiliser les extensions .mm du côté Objective-C. Par conséquent, si vous importez le fichier .h. dans un fichier .m, vous obtenez évidemment des erreurs car le compilateur n'attend pas de définition class (C++). Si vous importez le fichier .h dans un fichier .mm, vous avez quelques chances que cela fonctionne (si tout le reste est correct, je veux dire).

Si vous avez besoin de plus d'aide, veuillez fournir plus de code, afin que nous puissions mieux comprendre ce que vous faites. `Class` n'est ni C ni Objective-C.

+0

thx, j'ajoute quelques changements à mon post – MTA

+0

sur votre deuxième question: vous devriez fournir plus de détails sur la fonction 'start' ... est-ce un C fonction, une méthode ObjC? plus de code aiderait ... – sergio

+0

J'ai un code C++ que je poste et une fonction dans cette classe et je veux savoir comment je peux appeler la méthode de démarrage qui est dans l'en-tête C++ du fichier objectif-c – MTA

Questions connexes