Objective c 从C+启动Cocoa GUI+;循环并传递引用
我有个问题。。。也许是一对:)Objective c 从C+启动Cocoa GUI+;循环并传递引用,objective-c,multithreading,cocoa,user-interface,nsapplication,Objective C,Multithreading,Cocoa,User Interface,Nsapplication,我有个问题。。。也许是一对:) 我的团队用C++和Boost和CMake编写了一个客户端来处理平台相关的东西。工作就像一个魅力。。。有时:)无论如何,Windows的图形界面已经完成了,但Mac OS X没有。这也是我的任务。当然我使用的是可可,但问题是主循环在C++代码中,GUI也应该根据客户端更新一些动画。 这是怎么做到的? 我很困惑如何钉线程和如何通过引用从C++代码到GUI代码。现在,GUI代码有自己的小MVC,与项目的其余部分完全分离。 我环顾了很多地方,也许我是一个太多的noob:)
<>我的团队用C++和Boost和CMake编写了一个客户端来处理平台相关的东西。工作就像一个魅力。。。有时:)无论如何,Windows的图形界面已经完成了,但Mac OS X没有。这也是我的任务。当然我使用的是可可,但问题是主循环在C++代码中,GUI也应该根据客户端更新一些动画。 这是怎么做到的? 我很困惑如何钉线程和如何通过引用从C++代码到GUI代码。现在,GUI代码有自己的小MVC,与项目的其余部分完全分离。 我环顾了很多地方,也许我是一个太多的noob:),但我不罚款任何我可以真正使用。。。我真的不完全明白 我已经厌倦了重新创建非应用程序。我发现这本教程很有用: 我已经看了一些代表:
我在NSNotificationCenter上看了一下:
也许这里有人知道如何让我明白?调查什么?我应该看什么?< p>您的问题相当普遍,所以我只能给出一些高级的架构技巧,作为一个主要基于C++的应用程序,您想将其移植到Mac OS X上,并有一个本地可可UI。
<强>线程:因为C++代码在Windows上有主线程并不意味着它需要在Mac OS X上。启动应用程序通常采用NSpice的COCOA方式,然后在应用程序委托的代码>应用程序中完成< /Cord> >你应该做两件事:
提供了可以从Objtovi-C或C++调用的C接口函数。它们的实现可以用任何最方便的语言编写。这些函数的头将具有如下的线条,以允许C++代码知道它们具有C而不是C++接口:
#if defined __cplusplus
extern "C" {
#endif
void passAString(const char *string);
// ... some other C interface functions
#if defined __cplusplus
}
#endif
显然,在反向调用中,你需要使用类似的技术从Objto-C代码调用C++。< /P> + 1的细节,尽管C++和目标C I将不引入C接口,除非需要另一个使用。谢谢。我进行了编辑,以解释为什么您可能选择使用C接口函数。(它是唯一一种从ObjuleC和C++中调用的简单实用函数的方法。)