C++ C+中的目标C+–;超出范围

C++ C+中的目标C+–;超出范围,c++,iphone,objective-c,scope,C++,Iphone,Objective C,Scope,我对WOsclib有点问题。不是特别是库,它更多的是回调函数。监听特定的osc命令时,我必须设置一些回调方法,如 void TheOscStartMethod::Method( const WOscMessage *message, const WOscTimeTag& when, const TheNetReturnAddress*

我对WOsclib有点问题。不是特别是库,它更多的是回调函数。监听特定的osc命令时,我必须设置一些回调方法,如

void TheOscStartMethod::Method(
                          const WOscMessage *message,
                          const WOscTimeTag& when,
                          const TheNetReturnAddress* networkReturnAddress)
{
    std::cout << "Got the start signal";
    start.alpha = 1.0;
}
void TheOscStartMethod::Method(
const WOscMessage*消息,
const WOscTimeTag和时间,
const theneturnAddress*网络返回地址)
{

STD::CUT

使文件成为一个扩展的目标C++文件。MM可以调用同一代码中的对象C和C++对象。 XCode将从文件扩展名调用正确的编译器(即在compile命令中添加-x objective-c++)


<> P>不是C++和Objo C是不同的语言,不理解彼此的对象,所以在它们之间移动数据时,需要将数据转换成C类型,例如Valuy、Car int和指针。ST,它是从C++对象写的。如果是这样,它显然是不可行的:C++对象对代码< >启动< /代码>一无所知。解决方法是给C++对象一个引用,引用对象为拥有代码< >开始>代码>的Objy-C对象。其他代码


您可以传递它,您可以传递将要使用的部分,您可以为两个代码库创建一个API以供使用。还有其他选项,所有这些都取决于您希望如何使用各种对象。

解决方案:

我不知道这是否是最好的方法,但它是有效的

必须有一个空的c对象,它稍后将成为我们的目标c对象,其中包含我们想要访问的所有内容

static gsSearchForIp* delegate = NULL;
我们必须定义一个函数来设置目标c对象

void setCallbackDelegate(gsSearchForIp* del)
{
    delegate = del;
}
然后调用它。(我在
initWithFrame
方法中调用了它)


现在我可以使用
[delegate methodName:firstPara]调用一个方法在我的C++方法中,在这个函数中,我可以访问我需要的所有东西,从GSSECHCHORIP类。

哼,我已经做了,不是文件扩展,而是在信息面板。现在看起来是这样的:啊,我想这不是问题。我们需要看到类开始的头吗?就像我说的,<代码>开始<代码>是UI。ViewImage。也许我应该选择一个更好的例子。
start
可能是一个方法左右。
[self-methodName]< /代码>也不起作用。好吧,它说开机超出了范围-在哪里开始声明?<代码>开始/代码>在标题中声明为“IBOutlet UIButton *开始”;据我所知,C++代码将其范围放在目标C容器对象之外。即使我在特定对象中写入它。我的解释尽可能具体。没有G。你如何做的一般答案。你必须构造你的程序,使你的代码知道它需要的数据。这个程序结构具体看起来像什么,取决于程序的细节,而我们在这里没有。Uff,现在我想挖掘一些我完全不知道的东西。但是让我们试试。我有一个正常的AppDeaveTo的一些按钮和标签。这对我来说很好。最硬的部分是我正在使用的OSC库。这是用C++编写的,但与平台无关。我实现了它,它工作。我可以通过网络发送一个接收的OSC信号。现在,如果我得到一个OSC信号,一个具体的方法叫做C++方法。这是我的问题明星。ts。我想使用该方法更改接口。不知道这是否有助于指定我的案例?无论如何,谢谢:)
setCallbackDelegate(self);