Ich muss eine Wrapper-Klasse in Ziel C für C++ - Klasse schreiben.Wie schreibe ich objective c Wrapper für C++ - Methoden?
Ich habe die folgenden Can't find standard C++ includes when using C++ class in Cocoa project verwiesen und war in der Lage, das lexikalische oder Präprozessorproblem loszuwerden: Problem 'vector' Datei nicht gefunden.
Allerdings verstehe ich nicht, eine C++ - Methoden zu konvertieren, die mehrere Parameter zu objektiven c-Methode akzeptieren.
Kann mir bitte jemand helfen? Was ich tun mag, ist eine Wrapper-Klasse für diesen Ich habe http://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html#a0af91755d71eecfce5781f2cd759db85
zu schreiben versucht, dies zu tun und folgenden ist die Methode, die ich mit steckte ...
// 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#>)
}
Ich denke, Sie werden nicht besondere erstellen müssen Wrapper-Klasse für C++ in Objective-C. Ändern Sie einfach die Implementierungsdateierweiterung von .m in .mm Ihr C++ - Code beginnt mit der Kompilierung und Ausführung. – Tirth
Ich habe die statische Bibliothek für Rubberband-Bibliothek erstellt und nur die RubberBandStretcher.h-Datei erhalten. Die Header-Datei ist in C++ geschrieben. Wenn ich die Header-Datei importiere, geht es in die Header-Datei und gibt mir den Fehler "lexical or Preprocessor issue: 'vector' Datei nicht gefunden". Ich habe den folgenden Fehler beseitigt http://stackoverflow.com/questions/6083764/cant-find-standard-c-includes-when-using-c-class-in-cocoa-project So denke ich ich müssen Sie einen Wrapper schreiben – Ankahathara
Sie können die Dateierweiterung in. mm ändern, in dem Sie die C++ Syntax verwenden, richtig? Dann brauchen Sie den Wrapper nicht zu korrigieren. – Arjuna