托管 C++ 之间的区别 和 C++

发布于 2024-07-06 12:54:50 字数 1454 浏览 11 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

赏烟花じ飞满天 2024-07-13 12:54:50

如果未指定,C++ 是非托管 C++,编译为机器代码。 在非托管 C++ 中,您必须手动管理内存分配。

托管 C++ 是 Microsoft 发明的一种语言,可编译为由 .NET Framework 运行的字节码。 它使用的语法与 C++ 基本相同(因此得名),但编译方式与 C# 或 VB.NET 相同; 基本上只有语法发生变化,例如使用“->” 指向对象的成员(而不是 C# 中的“.”),使用“::”表示命名空间等。

托管 C++ 旨在简化从经典 C++ 到 .NET Framework 的过渡。 它不适合用于启动新项目(首选 C#)。

When not specified, C++ is unmanaged C++, compiled to machine code. In unmanaged C++ you must manage memory allocation manually.

Managed C++ is a language invented by Microsoft, that compiles to bytecode run by the .NET Framework. It uses mostly the same syntax as C++ (hence the name) but is compiled in the same way as C# or VB.NET; basically only the syntax changes, e.g. using '->' to point to a member of an object (instead of '.' in C#), using '::' for namespaces, etc.

Managed C++ was made to ease transition from classic C++ to the .NET Framework. It is not intended to be used to start new projects (C# is preferred).

最冷一天 2024-07-13 12:54:50

“托管 C++”是指 Visual Studio.NET/Visual Studio.NET 2003 中包含的一种语言。自 已弃用,最新的 .NET C++ 是 C++/CLI。

"Managed C++" refers to a language that was included in Visual Studio.NET/Visual Studio.NET 2003. It has since been deprecated, with the latest .NET C++ being C++/CLI.

屋顶上的小猫咪 2024-07-13 12:54:50

您可以用两种不同的方式编写本机 C++ 代码。 第一种是直接编译为机器代码,仅使用您和平台硬件)之间的操作系统。 第二个本机编码是使用 MFC(Microsoft 基础类)完成的。 除了使用 MFC 之外,这与第一个示例相同。

托管 C++ 使用 CLR(公共语言运行时)。 CLR 与 .NET Framework 类库一起组成了 .NET Framework。 此托管 C++/CLI 标准使用 .NET 框架以及 CIL(Microsoft 中间语言) 。 仅当程序使用即时编译器执行时,该标准才会映射到机器代码。 如果您的代码将在不同的硬件平台上运行,那么使用托管代码将会容易得多。 与所有事情一样,为了方便需要付出一点代价,因为本机代码会运行得更快。

You can code native C++ two different ways. The first is compiling directly to machine code with just the operating system between you and the platform (hardware). The second native coding is done with MFC (Microsoft Foundation Classes). This is the same as the first example except for the use of MFC.

Managed C++ uses the CLR (Common Language Runtime). The CLR along with the .NET framework class libraries make up the .NET Framework. This managed C++/CLI standard uses the .NET framework along with the CIL (Microsoft Intermediate Language). This standard works by mapping to machine code only when the program is executing by the use of a just in time compiler. If your code will be running on different hardware platforms the use of managed code will be much easier. As with all thing there is a slight price to pay for convenience, as native code will run faster.

哎呦我呸! 2024-07-13 12:54:50

当想要从托管代码使用本机 C++ 类库时,您将使用托管 C++。 在这种情况下,您可以将非托管类包装在托管 C++ 类中,然后在任何 CLR 语言中使用它们。

You'll be using managed C++ when want to use a native C++ class library from managed code. In this case you wrap unmanaged classes in managed C++ ones, then you use them in any CLR language.

把人绕傻吧 2024-07-13 12:54:50

托管C++意味着内存分配、管理、垃圾收集都由虚拟机处理。 而在“常规”C++ 中,您必须分配和释放内存。

Managed C++ means that memory allocation, management, garbage collection is handled by the virtual machine. Whereas in "regular" C++ you would have to allocate and deallocate memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文