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) 将 Other Linker Flags 设置为 -ObjC++ 时,会出现这两个错误。未知类型名称“类”;您指的是 'Class' 吗?

'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* 的转换和转换

于 2012-11-21T19:25:09.623 回答