我发现了一个伟大的职位Calling Objective-C method from C++ method?从C++方法调用Objective-C方法? [2]
不过,我有2个问题,这使我克服这个问题很成问题:
注意,我进行了更改MyObject来-C接口.H
#ifndef __MYOBJECT_C_INTERFACE_H__
#define __MYOBJECT_C_INTERFACE_H__ 1
struct CWrap {
void * myObjectInstance;
int MyObjectDoSomethingWith (void *parameter) {
//how to call the
//myObjectInstance->MyObjectDoSomethingWith ???
}
}
#endif
1)我如何可以调用的方法上一个void * myObjectInstance ...
我的意思是,我不能投到MyObject或以其他方式让编译器知道,要调用什么方法:(
2)我该如何使用它?
我,让说code.m已经两个
#import "MyObject.h"
//and
#include "MyObject-C-Interface.h"
我会怎么做?
MyObject tmp = [[MyObject alloc] init];
CWrap _cWrap;
_cWrap.myObjectInstance = (void *)tmp;
//pass the CWrap to a deep C++ nest
myMainCPPCode->addObjectiveCToCWrap(_cWrap);
,比我深的C++代码,只需调用
_cWrap.MyObjectDoSomethingWith((void *)somePrameter)
IAM缺少一个环节,这就是,如何在C wraper功能链接到的ObjectiveC功能:(
谢谢
好的,但是如果我不能使用.mm(objective C++),但是必须使用.cc(C++),我会如何调用[myObjectInstance doSomethingWith:parameter] ? – 2011-01-20 14:11:02