如果我对某些术语(mfc,win32,在vc ++中)错了,请纠正我

时间:2012-05-11 06:41:09

标签: winapi visual-c++ cil base-class-library

根据我的理解,使用我发布的Wiki和this问题,Microsoft有自己的编译器VC ++,它包含在.net框架中以及许多其他内容中。由于以下原因(以及其他原因),它可以做出非常好的应用程序:

  1. 我们可以在其中使用一个非常好且广泛的库,称为Base CLass Library
  2. 编译时,它会生成一个独立于平台的可移植中间代码,称为字节码(也称为通用中间语言)。此CIL是Microsoft公共语言基础结构规范(CLI)的实现。
  3. 在其他类型中,我们可以制作被称为Win32的应用程序,因为它们由32位内存地址组成。另外,win32 prog。包括各种gui元素的编程。
  4. 我是对的吗?现在,我的问题

    1. mfc和bcl之间的关系是什么?
    2. cts和cil之间的关系是什么。
    3. Win32编程的定义是否更多地关注具有32位地址的应用程序“而不是”应用程序(包括gui元素)“或反之亦然?

1 个答案:

答案 0 :(得分:2)

首先,使用BCL和Win32进行编程之间的主要区别之一是BCL用于托管代码(用于CLR),Win32用于本机代码。使用C ++ / CLI,您可以编写这两种代码。

  1. MFC is Microsoft Foundation Classes,它基本上将Windows API包装到面向对象的框架中。它通常由原生C ++使用 BCL (Base Class Library)的类似之处在于它也是常用类的集合,但它是为CLR Languages(如C#,VB.Net或C ++ / CLI)使用而设计的。所以这两者并没有真正相关,它们有着相似的用途,但它们是针对不同的平台而设计的。

  2. CTS (Common Type System)完全是关于类型定义,类型安全以及如何表示值 CIL is the Common Intermediate Language,因此您在任何语言中定义的每种类型都将编译为CIL代码,该代码必须符合CTS定义的规则。这可确保其他CLR Languages可以使用该类型,无论使用哪种语言创建它。

  3. 这些天名称Win32并没有真正说明比特数。它的根源是16位窗口,它还支持64位窗口。所以这是一个古老的名字,仍然广泛使用。您也可以将其称为“Windows API”。为了解决您的问题,它既不关注也不关注。顾名思义,它只是在Windows上运行的应用程序的本机API。您可以创建GUI元素,访问系统资源和功能等等。 Windows应用程序不需要具有GUI元素。