用于 win32 或 C++ 的 C#

标签 c# c++ winapi visual-c++

<分区>

我知道 C++ Windows 编程比 C# 难。因为我们应该创建 WNDCLASS 并初始化它并使用 API 函数和...

但我的问题是,对于 Windows 编程,C# 比 C++ 好吗?

如果是,为什么要用 C++ 创建大型程序。

最佳答案

当 C++ 优于 C# 托管代码时,它不是“大型程序”。

托管代码的功能是有限的,例如,您不能编写硬件驱动程序或其他与硬件交互的程序。您甚至无法从纯托管代码访问所有 Win32 API。有些程序对性能要求很高,因此更适合C++。有时使用 C++ 只是因为开发软件的公司拥有熟练的 C++ 开发人员。有时使用 C++ 是因为开发人员不希望软件依赖于 .NET 框架(在 XP 和更早的 Windows 版本上不是开箱即用的)。有时选择 C++ 以便可以开发跨平台应用程序。

从广义上讲,C# 比 C++/MFC/COM 等更容易学习,是一种更强大、更高效的语言和框架。但 C++ 是一个非常广泛的工具,可以为许多非常不同的问题提供解决方案,从编写操作系统、实时系统、嵌入式应用程序、数据库、商业软件、桌面软件、服务器软件、库/框架等。

C# 更适合解决特定类别的问题。它非常限于在 Windows 上运行(Silverlight 和 Mono 除外)。 C# 适合快速应用程序开发,这意味着它更适合一次性定制软件,例如大型组织内开发的许多内部应用程序。正如我所指出的,它比驱动程序和其他低级软件更适合开发桌面和服务器应用程序软件。

如果您正在考虑开始学习哪种语言,明智的选择是:C,然后是 C++,然后是 C#。这将为您提供成为真正优秀的面向对象程序员所需的基础,并了解我们拥有 C# 是多么幸运!如果你没有 10 年的空闲时间,那就继续吧,从 C# 开始。无论您做什么,都不要从 C++ 开始,否则您可能会绝望地放弃您的编程生涯,而加入更有意义的马戏团。

关于用于 win32 或 C++ 的 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4904489/

相关文章:

c++ - 使用 MSVC++ 9 进行 C 编程的建议

c++ - 设置 ACL,指定允许在请求队列上接收 I/O 的工作进程

c# - 如何从代码中添加/删除 Windows Phone 8.1(通用)应用程序的默认磁贴/辅助磁贴?

java - 设计更好的 API?

c# - 如何正确分组以下 MySql 表而不丢失数据?

c++ - 为什么 `main`函数内的局部int变量会自动初始化?

c - 如何激活Windows系统空闲状态?

c++ - 从 ShellExecute 获取 PID

c# - 如何使用 Midi 点网类在 C# 中读取打击乐音符值

c# - 如何从二维数组中随机选择一个位置?