如何在C++代码之上使用标准的Xcode GUI
How do I use the standard Xcode GUI on top of C++ code
我有一本书,教游戏开发者物理。该代码是通用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++对象。
相关文章:
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 铸造标准::有没有回到原来的类型
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 标准库类型的赋值运算符的引用限定符
- 在Xcode中使用C++17标准库中的bessel数学函数
- 如何在C++代码之上使用标准的Xcode GUI
- 更改 R Shiny 在 Mac OS X 10.9.1 上使用的C++标准库,带 Xcode 5(__cxa_guar
- Xcode 6.1.1是C++的ISO标准
- 如何在xcode 4.3中包含C++标准库
- 阻止Apple clang在标准include路径中添加Xcode路径
- XCode 4, Armadillo和XCode标准库
- c++标准库在.mm文件中找到,但在.h文件中找不到(Xcode 4.5 LLVM GCC 4.2)