gpt4 book ai didi

c# - CLI/C++。它与 'normal' c++ 或 visual c# 有何不同?

转载 作者:行者123 更新时间:2023-11-28 01:01:56 25 4
gpt4 key购买 nike

我在学校用 Dev C++ 编写了一些并不雄心勃勃的小程序,现在在学校已经有好几年了。但是现在它出来了我需要制作一个窗口应用程序。我看到有人为此使用 visual studio。

几天前,我得到了 Visual Studio C++ Express,经过一段时间的编码,在几行之后我意识到它与我目前使用的“普通”C++ 有很大不同。甚至字符串声明也让我头疼。我想问,如果 visual c# 可能与我所知道的更相似,或者也许有其他方法可以用我知道的 C++ 编写窗口应用程序代码,使用拖放界面,在创建按钮时,文本框之类的(比如在 visual studio 中)?

所以最重要的是,Visual c# 是否更像“普通”c++,如果不是,你们有什么建议来替换 Visual 吗?任何帮助表示赞赏。

最佳答案

C++ 和 C++/CLI 实际上只是不同的语言,为不同的目的而设计。 C++/CLI 在设计时考虑了一个目标——CLR,因此公开了垃圾收集指针、接口(interface)、委托(delegate)和类似语言的第一类组件。然而,C++/CLI 的设计使得大多数有效 C++ 代码都可以编译为面向 CLR 而无需重写。这里的缺点是编译现有的 C++ 代码通常会使用 native 指针,除非将其置于 unsafe 模式,否则不能在 CLR 上表达这些指针。这意味着您不能在部分信任的环境中运行此类编译代码,例如 Sliverlight 或 Windows Phone。

另一方面,C++ 是一种通用编程语言,旨在面向所有计算机系统,从最大的大型机到最小的微 Controller 。没有可用的垃圾收集指针或委托(delegate)等功能,因为在某些类型的硬件上提供此类功能非常困难。

实际上,尽管语法相似,但它们是两种完全不同的语言。 C++/CLI 通常以更接近 C# 而不是 C++ 的风格编写。

现在,解决您的具体问题:

Even declarations of strings are giving me headache.

C++/CLI 提供了 System::String 类型作为其基类库的一部分。标准 C++ 还提供 std::basic_string(当专门用于 char 时,它被类型定义为 std::string)因此,您可能会看到某些类型的冲突,处理这种冲突的唯一方法通常是明确指定您想要的冲突。

I wanted to ask, if maybe visual c# would be more similar to what i know, or maybe there is some other way for me, to code window application in C++ i know, using drag and drop interface, when it comes to creating buttons, textboxes and stuff (like in visual studio)?

编辑:以下内容在 Visual Studio 2010 中可能不再适用。我没有机会验证。 (有关更多详细信息,请参阅对此答案的评论)

Visual Studio 中没有可用于生成 C++ 应用程序的可视化设计器类型的工具。有 WPF 和 Windows Forms 的设计器,它们都是 CLR 技术。要使用这些设计器,您必须使用 C++/CLI,而不是 C++。

关于c# - CLI/C++。它与 'normal' c++ 或 visual c# 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275517/

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