繁体   English   中英

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

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

我有一本书为游戏开发者教授物理。 该代码是通用的 C 风格代码。 但是,这些示例使用 GUI 与代码交互(变量初始化、启动条件等)。 GUI 代码没有实现,留给读者。 理想情况下,在我的 MAC 上,我想使用 Xcode 中的 GUI 构建器来构建这些小界面,然后使用 GUI 运行代码。 However, I don't want to code the physics code in Swift or Objective-C, I just want to code it in C++ so that I can transfer the code to work (which is Windows and uses Visual Studios). 如果有人可以向我指出一个资源的方向,该资源解释了如何让 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);
};

品牌名称_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++ 功能与目标 C 功能。 您将拥有两个并排运行的 object 系统。 您不能从 Objective C 类派生 C++ 类,反之亦然,但这是唯一的主要限制。 C++代码可以构造ObjC对象并发送ObjC消息,ObjC方法可以实例化和调用C++对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM