0

可能的重复
什么是 gcnew?
C++/CLI 中的插入符号是什么意思?
托管 c++ 和 c++ 之间的区别

我是使用 g++ 的高级 C++ 程序员。但目前我正在使用 Visual C++ 2005 进行 Windows 窗体应用程序编程。但我发现它的新术语很难。例如,而不是new它有gcnew

String ^之类的事情。有人可以解释什么是^,类似于指针吗?

我可以让 Visual C++ 像 g++ 编译器一样以与普通 C++ 相同的方式工作吗?我还听说过一些有关托管 C++ 的信息。那是什么?

4

5 回答 5

1

gcnew 和 ^ 值是托管的 C++,它是与 c++ 不同的语言。通过不使用新项目窗口的 CLR 部分中的项目类型,您可以将 VS2005 用作普通的 C++ 编译器。

于 2009-10-12T11:01:51.500 回答
1

gcnew并且^来自新的 Visual C++ 语法。新语法不是 ISO/ANSI C++ 标准的一部分,而是一组在 Ecma C++/CLI 标准下标准化的 C++ 扩展。如果你不想,你可以不使用它们。在这里,您可以阅读有关 Visual C++ 扩展的更多信息。

于 2009-10-12T11:02:18.690 回答
1

Windows 窗体是特定于 .Net 的,因此如果您想这样做,您需要使用 C++/CLI(即“托管 C++”)。

但是,我不确定您是否真的想要 Windows 窗体?您只想要某种窗口式 GUI,对吗?如果是这种情况,您可以使用 MFC 之类的东西或仅使用本机 O/S 调用来创建您的 GUI,或者您可以使用Qt之类的包装 API

[编辑] 只是为了澄清一点:)

我还听说过一些有关托管 C++ 的信息。那是什么?

C++/CLI 是 C++ 的 .Net 实现。在这里,您可以使用常规 C++ 和托管代码。C++/CLI 是微软试图简化 C++ 开发人员进入托管框架的学习曲线的尝试,但是,现在它并没有被大量使用,你可能很难找到(m)任何好的教程。Visual C++ 只是 IDE 的名称,它与您使用哪种 C++ 无关。您可以像使用 g++ 一样使用 Visual C++,但是如果您不想通过控制台应用程序进行任何操作,则需要将一些 GUI 逻辑连接到您的应用程序中。正如我原来的回答中所说,这可以通过多种方式完成。

如果您确定要使用 .Net,我建议您花一天时间使用 C#,因为如果您有 C++ 经验,学习起来真的很容易,但从您的问题来看,我认为这不是您想要的 :)

于 2009-10-12T11:17:22.857 回答
0

托管 C++ 用于 Microsoft 公共语言运行时 (CLR) 中的 .Net 开发。创建这种特殊的 C++ 语法是为了让 C++ 开发人员无需学习 C# 等新语言即可进入 .Net 社区。

您可以通过创建非 CLR 项目以与 g++ 相同的方式使用 Visual C++。

于 2009-10-12T11:08:18.443 回答
0

请注意,Windows 窗体并不是在 Windows 下制作 GUI 的唯一方法。如果你想要纯 C(如果你愿意,你可以用 C++ 包装),你可以使用常规的 Win32 API。

如果您确实选择了 Windows 窗体,那么您可以选择使用 C#、VB.NET 或 C++/CLI(托管 C++)。您不需要使用 C++/CLI,这似乎是您的假设。

于 2009-12-13T23:53:27.530 回答