0

私は、いくつかの c++ クラスとして iOS プロジェクトに取り組んでいます。しかし、それらをコンパイルするのは簡単ではないようです。私はさまざまな方法に飽きましたが、常にいくつかのエラーが発生します。

1)最初に.m;classの名前を.mmに変更してコンパイルしようとすると、エラーが発生します。この行で

SInt16 *editBuffer = audioBufferList->mBuffers[0].mDat;

Error - "Cannot initialize a variable of type 'SInt16 *' (aka 'short *') with an lvalue of type 'void *'"

2) その他のリンカー フラグを -ObjC++ に設定すると、これら 2 つのエラーが発生します。型名「クラス」が不明です。「クラス」のことですか?

'deque' file not found - for #include<deque>

ここで何が問題なのか、誰にもわかります。前もって感謝します。

4

1 に答える 1

1

最初のエラーが予想されます。C++ は void ポインターにうるさいです。

SInt16 *editBuffer = (SInt16 *)(audioBufferList->mBuffers[0].mDat);

また

SInt16 *editBuffer = static_cast<SInt16 *>(audioBufferList->mBuffers[0].mDat);

void* へのキャストと void* からのキャストを参照してください。

于 2012-11-21T19:25:09.623 に答える