如何在C++代码之上使用标准的Xcode GUI

How do I use the standard Xcode GUI on top of C++ code

本文关键字:标准 Xcode GUI C++ 代码      更新时间:2023-10-16

我有一本书,教游戏开发者物理。该代码是通用C样式代码。然而,示例使用GUI与代码接口(变量初始化、启动条件等(。GUI代码没有实现,而是留给读者。理想情况下,在我的MAC上,我想使用Xcode中的GUI生成器来构建这些小接口,然后使用GUI来运行代码。然而,我不想用Swift或Objective-C编写物理代码,我只想用C++编写,这样我就可以将代码转移到工作中(这是Windows,使用Visual Studio(。如果有人能给我指一个资源的方向,解释如何让MAC GUi调用C++代码,并在Xcode中完成这一切,那就太好了。

我做了一些搜索,但我不认为我是一个使用正确的术语来获得正确结果的人。

这是非常宽泛的。

一般原则是将物理代码放在自己的一组可移植C++文件中。常规C++和标头。暴露的基本结构,可能暴露std::容器,但保持通用性。

除此之外,在xcode中使用UI生成器,但只能在编写的代码中引用物理代码。这看起来像:

nice_physics.cpp

// portable code here

nice_physics.h

class NicePhysic
{
public:
int nice_function(float);
};

brandname_ui.cpp

// hook generated by your IDE
UGLY_DECL_TYPE UGLY_MACRO valueChanged(UGLY_TYPE i)
{
NicePhysic phys; // move this object to wherever the UI system you use allows it
// make whatever calls you need to your physics system
phys.nice_function(0.5);
}

目标C++就是您的答案。如果文件的扩展名为.mm,则可以将C++功能与Objective C功能混合使用。您将有两个并排运行的对象系统。您不能从Objective C类派生C++类,反之亦然,但这是唯一的主要限制。C++代码可以构造ObjC对象并发送ObjC消息,ObjC方法可以实例化和调用C++对象。