gpt4 book ai didi

c# - C++ CLR win32 或其他?

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:44 24 4
gpt4 key购买 nike

我正在使用 C++,发现有不同种类的 C++,例如 CLR、Win32、MFC......

此外,我发现某些 C++ 库可以在其他一些 C# 程序中调用。怎么可能?

既然人们认为 C++ 比 C# 快,因为它不需要平台来运行它,但是,如果在 CLR 中使用 C++,它会因为需要 .Net 框架而变得更慢吗?

问题是:我想制作一个调用 windows 命令并返回输出的 C++ 库,并且可以在其他 C# 程序中调用该库。有可能这样做吗?如果是,C++ 库是否需要 .Net 框架并且运行速度较慢?

最佳答案

你的困惑是可以理解的,但你的理解是有缺陷的。

C++ 和使用 MFC 之间没有区别,MFC 是用 C++ 编写的类框架,就像您可能用 C++ 编写的任何其他代码一样。它只是 Microsoft 随其产品提供的一个框架。

C++/CLI(不是 CLR)并不是真正的 C++。它是一种类似于 C++ 的语言,可编译为 .net IL 字节码。它有很多限制,并且具有 C# 和 VB.NET 以及其他 .NET 语言所具有的所有相同限制。它与 C++ 非常相似,但又不完全相同。

C++/CLI 应用程序编译为 .net IL 字节码,因此它们与 C# 应用程序没有什么不同。事实上,几乎所有基于 .net 的语言都会编译成相同的字节码,并使用相同的框架。

C# 或 C++/CLI 程序是否“更慢”尚不明确。太多的 C++ 狂热者延续了托管代码缓慢的神话。它不是。有些事情很慢,比如第一次运行它(它必须按需编译代码),但是因为.NET Jitter(即时编译器)可以为它运行的平台优化代码,所以它来制作代码表现更好。

当然托管代码也有垃圾回收,这很方便,但在某些情况下可能会导致性能问题。但是,这不是所有情况,甚至不是大多数情况。

关于c# - C++ CLR win32 或其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061509/

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