【发布时间】:2014-05-01 19:56:21
【问题描述】:
我最近买了一台 Mac,想用 Cocoa 用 Objective-C 重写我的一些程序,但两者都没有经验。
我想最容易开始的是我的一些 C/C++ OpenGL 代码(主要是我的类、宏和数学函数)。我在某处读到 C++ 代码可以在 Objective-C++ 编译器中使用。这是真的吗,如果是,我该如何包含这些文件?
另外,我在哪里可以找到关于如何在 Objective-C 中使用 Cocoa 启动基本应用程序的好资源?与 Windows 和 OpenGL 相比,Cocoa 的资源似乎很少,所以我很难找到信息(请注意免费信息)。
如果您认为这种转换是一个坏主意,我将不胜感激。提前致谢!
【问题讨论】:
-
当您可以按原样导入 C++ 代码时,为什么要转换?您只需将调用 C++ 功能的 Objective-C 文件从
.m更改为.mm -
不确定,这就是我要问的。我找不到任何好的教程或信息,而且我从未使用过 Objective-C(C/C++、C#、Java)。如果我导入代码,当我在 Objective-C 中调用它们时,函数调用是如何工作的?我的宏会一样工作吗,或者 Objective-C 是否有预编译器?如何告诉我的编译器代码是 Objective-C++ 而不是 Objective-C?诸如 lambda 表达式之类的 C++11 功能在 Objective-C++ 中是否有效。显然你无法回答所有这些问题,尤其是没有代码的情况下;我真的只需要指向涵盖这些主题的某种来源的链接。
-
40two 是对的,你基本上只是想让你的项目成为一个 obj-c++ 项目,编译器应该按原样工作(llvm),但如果你愿意,你可以在某个地方的设置中将它换成 gcc。你可能需要做一些 obj-c 来让你的代码运行起来,但它应该是非常少的。能够在 obj-c(++) 中无缝运行 c/c++ 是该语言的一大特色
标签: c++ objective-c cocoa opengl code-conversion