1

我所有的商业经验都基于 .NET(VB 和 C#)等高级语言。我有 C 和 C++(大学)的学术经验。

我不完全理解 Visual C++ 如何适应 .NET 方式。我有使用 Cygwin 为 Linux 编译 c++ 程序的经验(在大学)。

我是否正确地说 Visual C++ 将编译成 C# 和 VB.NET 等中间语言?我假设 Visual C++ 由只想针对 Windows 的开发人员使用,而 Cygwin 由想要针对多个环境的 C++ 开发人员使用?

我问的原因是因为我使用 C++ 组件(由另一个开发人员编写)作为 .NET 应用程序的一部分。

我今天在网上阅读了许多 Visual C++ 文章,但我还没有找到我正在寻找的答案。

4

2 回答 2

3

不。C++ 直接编译为机器代码,没有像 .NET 的 IL 那样的中间步骤,它使用即时编译器在运行时将其转换为机器代码。

如果您需要在 C++ 和 .NET 代码之间进行互操作,那么您可能会想看看 C++/CLI。一种仅类似于C++ 但非常擅长弥合原生 C++ 和 .NET 运行时之间差距的语言。

于 2012-10-07T18:44:33.957 回答
2

我是否正确地说 Visual C++ 将编译成 C# 和 VB.NET 等中间语言?

是和不是。如果您使用 C++/CLI(这是一种包含在 Visual C++ 中的 Microsoft 专有语言,类似于 C++ 语言但绝对不是一回事),那么是的,它将编译为 .NET 中间代码。如果您关闭 C++/CLI 并使用标准 C++,那么它将编译为本机代码而不使用 .NET 运行时。

想要针对多个环境的 C++ 开发人员使用 Cygwin?

如果要针对多个环境,则不需要 Cygwin。然而,用 Cygwin 编译的可移植方式编写的代码也更有可能在其他平台上的 GCC 上编译。您可以使用任何编译器编写可移植代码。

Cygwin 为 Linux 编译 c++ 程序

我想你在这一点上可能有点困惑。Cygwin 是一个为Windows提供 GCC 编译器(和类似 POSIX)环境的包。Cygwin 不在 Linux 上运行,没有必要。

于 2012-10-07T18:43:14.970 回答