从 C# 迁移到 C++ [关闭]

Posted

技术标签:

【中文标题】从 C# 迁移到 C++ [关闭]【英文标题】:Moving from C# to C++ [closed] 【发布时间】:2011-04-03 12:42:00 【问题描述】:

我是一个略低于平均水平的 C# 程序员,我只使用 GUI 编写应用程序。我可能很快就会得到一台Mac。由于 Mac 上没有 .NET Framework 或 Visual Studio,我将使用 Xcode 和 Cocoa。我认为这将是一个很好的机会来切换到一种众所周知且支持良好的语言 (C++)。在不了解 C 的情况下,我很容易学会了 C#,所以我希望 C++ 也一样。我也想学Java。你建议我怎么做?我可以用 C++ 和 Java 编写带有 GUI 的应用程序吗? (我可以使用 xcode 中包含的工具来执行此操作吗?)。您是否推荐任何有帮助的书籍/网站?

谢谢, 大卫

【问题讨论】:

不要自欺欺人。 C++ 是比 C# 更难对付的动物。如果您想要更相似的语言和框架,我建议您坚持使用 Java。对于你和所有努力使用它的人来说,C++ 将是一个非常艰难的学习曲线。也给 Mono 看看。 C、C++ 和 C# 都是非常不同的语言。如果您想学习其中一种语言,最好忘记您对其他两种语言的大部分了解。严重地。除了单独的编译/链接东西,这是 C 和 C++ 之间共享的概念。作为“略低于平均水平的 C# 程序员”,您可能很难适应 C++。最好找一本好的 C++ 书籍,从一开始就学习基本概念,而不是被网络上的错误信息弄糊涂。 【参考方案1】:

你建议我做什么?

Bootcamp.

因为没有 .NET Framework 在 Mac 上

Says who?

我可以用 C++ 和 GUI 编写应用程序吗? 爪哇?

Ofcourse.

您是否推荐任何书籍/网站 会有帮助吗?

你正在看一个。 关于如何开始使用<X> 有很多线程。 Look for them.

【讨论】:

Mac 的大部分内容都是用 Obj-C 编写的。不是 C++ 或 Java。你可以用 WXWidgets 做一些其他的东西,Java 显然有库,但是 Objective-C 是在 Mac 上实现它的方式。 @thyrgle:如果您对开发跨平台应用程序感兴趣,则不会。带有 Qt 的 Java 或 C++ 似乎不是一个坏主意。 如果您正在开发一些企业内部或垂直应用程序,其中用户体验并不重要,而且上市时间很关键,Java 或 wxWindows 将助您一臂之力。但是,您永远不会想尝试将这样的应用程序出售给 Mac 用户,因为它不会让人感觉“像 Mac”。用 Objective-C 和 Cocoa 编写前端,并链接到用 C/C++ 编写的后端库。【参考方案2】:

如果您要编写 Mac 软件,只需学习 Objective-C 和 Cocoa。否则,您将无法创建在 Mac 上“感觉”正确的应用程序,客户也不会热情。

如果你要编写 iPhone 软件,你会想要 UIKit 的 Objective-C,除非你要在 OpenGL 中做所有事情。

我还建议学习 C++,因为它是标准的,并且很多库都是用它编写的。但我个人会避免将 C++ 用于 Mac、Windows 或 iPhone 上的直接 UI 工作,但会推荐它用于后端库工作。

【讨论】:

更重要的是,你不能用纯 C++ 编写 Cocoa 应用程序,除非你想自己编写一个翻译层。 Photoshop 感觉如何?据我所知,它是用 C++ 编写的。 在之前的版本中,Photoshop 是用 C/C++ 编写到旧的 Carbon API 中的,这也是向 64 位迁移延迟和客户抱怨的原因。最新版本用 Cocoa 重写了 UI,这给了它更好的 MacOS X 集成和 64 位支持。后端仍然可能是 C/C++,因为 Objective-C 可以本地链接到它。这是我建议同时学习两者的另一个原因。【参考方案3】:

我刚才跳了。

你必须知道如何管理内存。别担心,这很棘手,但并不难。您必须了解 RAII 及其重要性。 I asked it once。

您不会拥有 .NET Framework。您可以而且应该依赖 STL 和 Boost。

最后你应该take a look at QT。它是一个 GUI 库

【讨论】:

以上是关于从 C# 迁移到 C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

浮点问题:C++ 到 C# 的迁移

我的 C# .NET 团队是不是应该迁移到 Windows Presentation Foundation? [关闭]

从 IBM MQ 迁移到 ActiveMQ 的过程 [关闭]

从 Visual C++ 6 迁移到 Visual C++ 2008 express

从 JDBC 迁移到 JPA [关闭]

将 C++ 从 VS2003 迁移到 VS2005 需要哪些代码更改?