gpt4 book ai didi

c++ - 如何将复杂的 C++ XCode 项目转换为 Cocoa 应用程序?

转载 作者:太空狗 更新时间:2023-10-29 21:50:59 29 4
gpt4 key购买 nike

我有一个相对复杂的 C++ 应用程序的源代码,该应用程序涉及大量库、依赖项等。我正在尝试获取它并向其添加 Cocoa GUI。到目前为止,我在以下方面失败了:

  • 创建一个新的 Cocoa xcodeproj 并尝试将所有库等移动到 Cocoa 应用程序中。我只是无法构建它。无论我做什么,都会出现数以千计的错误。我的技能不够好,无法弄清楚发生了什么。

所以,我认为更简单的方法必须是对 C++ xcodeproj 进行适当的更改,以使 main() 函数启动 NSApplication 而不是它现在正在做的任何事情。

有谁知道我必须做什么才能使这一切发生?我是 Cocoa 的新手,所以我不确定我需要添加什么。作为引用,C++ 应用程序的 main.cpp 实际上非常简单:

int main() {
ofSetupOpenGL(320,300, OF_WINDOW);
ofRunApp(new testApp());
}

我想做的是做出所有正确的改变,这样就可以:

#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[]) {
return NSApplicationMain(argc, (const char **) argv);
}

然后让旧的 xcodeproj 编译,所有的“东西”仍然在里面,然后当它运行时,打开 Cocoa 窗口。

应该注意的是,C++ xcodeproj 似乎完全没有与 Cocoa 相关的内容,甚至没有任何与 Objective-C 相关的内容,因此我们必须添加所有相关的内容并进行所有相关更改。

有什么想法吗?

(或者,如果您知道我如何轻松地从 C++ xcodeproj 中获取所有内容以构建一个非常干净的 Cocoa xcodeproj,请告诉我,但目前这对我来说似乎更复杂。)

谢谢!

最佳答案

好吧,我有两个想法......

  1. 你真的需要 Cocoa 吗?可以添加 QT、wxWidgets 和其他 Mac 支持。
  2. 您不必将每一行 C++ 代码都转换为 Objective-C++。 Objective-C++ 可以轻松处理 C++ 代码,您只需更改 .cpp -> .mm,当然,还需要重新编写一些与 UI 相关的代码。我认为,这里最好的方法是从 XCode 创建一个空白的 Cocoa 应用程序,然后逐步用旧代码填充它。首先让你的 OpenGL 东西与 Cocoa 应用程序一起工作,而不是传输 C++ 代码重命名文件。

提示:您可以用“空白声明”覆盖您的代码的某些部分,即定义一个空宏而不是真正的函数,如果确实有必要,将一些空白类和一个空方法放在一起。编译所有的东西是这里的第一步也是重要的一步。当一切都编译完成时——将另一部分真实代码放入项目中并修复它以进行编译。

不幸的是,我不知道更好的解决方案。我已经多次重构大型项目,每次,在每个平台和编程语言上,配方都是相同的。祝你好运!

关于c++ - 如何将复杂的 C++ XCode 项目转换为 Cocoa 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4674109/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com