C++ クラスの目的の c でラッパー クラスを記述する必要があります。
次の「Cocoa プロジェクトで C++ クラスを使用しているときに標準 C++ インクルードが見つからない」を参照し、レキシカルまたはプリプロセッサの問題を取り除くことができました: 「ベクター」ファイルが見つからない問題。
ただし、いくつかのパラメーターを受け入れる C++ メソッドを目的の c メソッドに変換することを理解していません。
誰かがそうするのを手伝ってもらえますか? 私がやりたいのは、このhttp://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html#a0af91755d71eecfce5781f2cd759db85のラッパー クラスを作成することです。
私はそうしようとしましたが、以下は私が立ち往生している方法です...
// Wrapper.h
#import <Foundation/Foundation.h>
@interface Wrapper : NSObject {
void *myRubberBandStretcher;
}
#pragma mark - Member Functions
-(void)process:(const float)input samples:(size_t)samples final:(bool)final;
@end
/////////////////////////////////////////////// //////////////////////////////
//Wrapper.mm
#import "Wrapper.h"
#import "RubberBandStretcher.h"
@implementation Wrapper
-(id)init {
self = [super init];
if (self) {
myRubberBandStretcher = new RubberBand::RubberBandStretcher::RubberBandStretcher(44100, 2, 0, 1.0, 1.0);
}
return self;
}
-(void)process:(const float)input samples:(size_t)samples final:(bool)final {
static_cast<RubberBand::RubberBandStretcher *>(myRubberBandStretcher)->process(<#const float *const *input#>, <#size_t samples#>, <#bool final#>)
}