2011-07-27 13 views
1

私は静的ライブラリを構築し、.hファイル内のすべてのクラスでは、私のプロジェクトにC++とObjective-Cの

.hファイルを追加し、このような何かエラー:

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

** EDIT * *

ファイルexをmmに変更してこの問題を解決しました。 は今、私はこのコードを使用したいと私は、このクラスから呼び出したい、このコードは、私はObjective-Cのクラスから彼を呼び出したいの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 

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

私の目的からの方法 - CのiPhoneアプリ。

+4

'class'はCでもObjective-Cでもありません。 –

+0

これはCでもObjective-Cでもない... –

答えて

4

あなたが投稿したコードはCではありません。むしろC++です。

Objective-CとC++は相互運用できますが、Objective-C側では.mm拡張子を使用する必要があります。

ファイルを.mファイルにインポートすると、コンパイラがclass定義(C++)を想定していないため、明らかにエラーが発生します。 .hファイルを.mmファイルにインポートすると、それが動作する可能性があります(残りの部分がすべて正しい場合はそれを意味します)。

さらに詳しいヘルプが必要な場合は、より多くのコードを入力してください。

+0

thx、私はあなたの2番目の質問について、私の投稿 – MTA

+0

にいくつかの変更を加える: 'start'関数についてもっと詳しく述べるべきです...それはCです関数、ObjCメソッド?より多くのコードは助けてくれるでしょう... – sergio

+0

私はこのクラスの関数と私が投稿したC++コードを持っています、そして、私はobjective-cファイルからC++ヘッダーにあるstartメソッドをどのように呼び出せるかを知りたいです – MTA

関連する問題