C++ C和x2B之间的主要区别是什么+;vs C++;。网?

C++ C和x2B之间的主要区别是什么+;vs C++;。网?,c++,visual-c++,C++,Visual C++,可能重复: 我怀疑C++和C++之间的区别。 是不是C++是非托管代码,C++是.NET托管代码? 我需要为C++中的一个项目编程。为了更好地构建GUI,我更愿意使用C++ .NET.< 我还有一个纯C++库(非托管C++ DLL文件),它是否可以作为C++的.dll库中的普通DLL库使用? 是,C++是非托管代码,C++是.NET托管代码。 没有所谓的“C++.NET”。有C++ + CLI,它基本上是C++的微软扩展,允许您编写以.NET框架为目标的代码。C++/CLI代码编译为CLR字

可能重复:

我怀疑C++和C++之间的区别。

是不是C++是非托管代码,C++是.NET托管代码? 我需要为C++中的一个项目编程。为了更好地构建GUI,我更愿意使用C++ .NET.<

我还有一个纯C++库(非托管C++ DLL文件),它是否可以作为C++的.dll库中的普通DLL库使用?

是,C++是非托管代码,C++是.NET托管代码。 没有所谓的“C++.NET”。有C++ + CLI,它基本上是C++的微软扩展,允许您编写以.NET框架为目标的代码。C++/CLI代码编译为CLR字节码,并像C#一样在虚拟机上运行。我假设您实际上在谈论C++/CLI

关于这个,可以说标准C++是非托管的,C++ + CLI是管理的,但这是非常微软的术语。除非与C++或CLI,

相比,否则你永远不会看到“非托管”这个术语在讨论标准C++时使用过。 <> P>标准C++和C++ +CLI均可由同一Visual C++编译器编译。前者是VC++编译器的默认值,而编译器开关则需要使其在后一种模式下编译

我需要为C++中的一个项目编程。为了更好地构建GUI,我 宁愿使用C++ .net .< /p> <>你可以在C++中构建GUI程序,就像C++和CLI一样。这是比较困难的,因为标准C++中没有标准库来构建像.NET框架那样的GUI,但是有很多项目,比如,提供了一个C++ GUI框架。

我还有一个纯C++库(非托管C++ DLL),会不会是 可以在C++ .NET项目中使用它作为普通的DLL库吗? 对。处理不同的标准C++数据类型和.NET数据类型可能需要额外的工作,但您确实可以使它工作。

UL> 是的,C++是非托管代码,C++ + CLI被管理。 是的,你可以在C++的CLI项目中使用你的非托管C++ DLL。但是你必须为此写一个包装。这意味着您必须定义要在C++/CLI项目中访问的非托管方法 例如:

using System.Runtime.InteropServices;

[DllImport("YourDLLName")]
public static extern void UnmanagedMethodName(string parameter1);

嗯。。。C++是一种误称。 你可以用Visual Studio.NET在C++中编程。很久以前就是这么叫的。现在有一天人们称之为VisualStudio,有点网络的绰号。好吧,至少启动屏幕上不再有大的ol.NET标志了

可以理解的是,使用VisualStudio(VS),您可以使用托管和非托管语言编程(顺便说一句,这里有很多选择)

如果你想用VisualStudio在C++中编程,你有两种选择:

  • 非托管或本机C/C++。这是旧的(或者我也猜)C++ 您一直都知道,并且您使用非托管内存编程

  • 托管C++。他们称之为C++/CLI。也就是说,在CLI上读取C++,而不是 C++用CLI划分!这是C++,它有额外的关键字,还有一些 额外的语法元素比原生C++。这允许您 利用.NET基础类库并做其他有趣的事情 NET框架。当然,这会使用垃圾收集器来 托管类型的内存

    我个人最喜欢的语言是C语言,但是如果你需要在C++和.NET之间进行互操作,那么就绝对不要使用托管C++。这很容易做到,而且我认为比其他P/Invoke的东西更容易

    如果你要做某个项目,我建议你用C#做你的UI,并充分利用它所提供的一切。然后引用一个包含C++代码的混合模式管理库。我想这对你来说会容易得多

    你最后一个问题的答案是肯定的,你完全可以在你的应用程序中使用它

    以下是依赖项的工作方式:


    < C++ > C++ C++程序集(取决于[n+c++bb])/p> < p>托管C++是一个现在强的、不受欢迎的c++的C++集合,包括语法和句法扩展、关键字和属性,将C++语法和语言带到.NET框架。这些扩展允许C++代码以托管代码的形式面向公共语言运行库(CLR),并继续与本机代码互操作。托管C++不是一个完全独立的,或完全成熟的编程语言。 托管C++

    #using <mscorlib.dll>
    using namespace System;
    
    int main()  {
      Console::WriteLine("Hello, world!");
      return 0;
    }
    
    #使用
    使用名称空间系统;
    int main(){
    控制台::WriteLine(“你好,世界!”);
    返回0;
    }
    
    香草C++

    #include <iostream>
    using namespace std;
    
    int main()
    {
      cout << "Hello, world!";
     return 0;
    }
    
    #包括
    使用名称空间std;
    int main()
    {
    
    非常感谢您的快速回答。如果是这样,我应该在Visual Studio中使用C++/CLI来构建GUI,而不是使用QT或wxWidgets吗?因为使用QT或wxWidgets,我引入了我的应用程序的另一个依赖项。我想如果我只使用C++/CLI托管,我只需要.net framework。使用C++/CLI、QT和wxWi的优缺点是什么dgets?你能帮我澄清一下吗?提前谢谢。@devn:.NET framework也是一种依赖关系,它甚至比Qt或wxWidgets更大,因此在任何情况下都需要依赖关系。请注意,Qt和wxWidgets不需要.NET framework来工作。使用wxWidgest或Qt可以使应用程序跨平台移植NET平台保证了您在VisualStudio/Windows上的固定。如果您已经熟悉.NETFramework,它比使用全新的框架减少了工作量。另一方面,使用纯C++ LIBS不引入额外的层(REF类与本地类)。您必须掌握。简言之,这取决于您的知识和用例。@在硅片中:不一定。如果您计划仅在windows上部署,并且始终希望使用Visual Studio,.NET Framework不是一个大问题。它是有用的