私は Objective-C++ を多用しています。Objective-C コードに C++ コードを含めることはできますが、その逆は正しくないことはわかっています。作成したカスタム C++ オブジェクトを、分散オブジェクトを介して Objective-C プロセスに提供したいと考えています。これを実行しようとすると、次のエラー メッセージが表示されます。
error: cannot convert ‘custom_class*’ to ‘objc_object*’ in argument passing
カスタム C++ オブジェクトを別の Objective-C プロセスに提供する方法はありますか?
私が持っているコード:
#import <Cocoa/Cocoa.h>
#import <iostream>
#import <stdio.h>
using namespace std;
class custom_class {
public:
custom_class();
~custom_class();
void hello();
};
custom_class::custom_class() { }
custom_class::~custom_class() { }
void custom_class::hello() { cout << "Hello World!" << endl; }
int main() {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
cout << "Starting vendor " << endl;
custom_class *test = new custom_class();
NSConnection *connection = [NSConnection connectionWithReceivePort:[NSPort port] sendPort:nil];
[connection setRequestTimeout:1];
[connection setRootObject:test];
[connection registerName:@"DisObjTest"];
[[NSRunLoop currentRunLoop] run];
[pool drain];
return 0;
}