Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系

Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系

  • Win32控制台程序

初始化代码模板以Main为程序入口,默认情况下,只链接C++运行时库和一些核心的Win32库,链接器subsystem参数为console类型,所以编译出来的程序会有黑色的控制台窗口作为呈现标注输入(stdin)和标准输出(stdou)

  • Win32项目

初始代码实现一个简单的windows窗口,以WinMian作为程序入口,引用了Win32Api头和库,衔接器subsystem参数为windows,所以生成的程序不带黑色的控制台,直接使用标准输入的标准输出,看不到效果。

  • MFC应用程序

本质上是个win32工程,只是默认帮你引用了mfc框架的头文件和库,并且程序入口由mfc框架提供,不需要自己写。

  • 三种应用程序的区别

1)Win32控制台程序,没有界面,只有命令符。生成的".exe"文件直接运行操作即可。
2)Win32项目,有界面。但是界面里的控件。基本需要自己去实现。
3)MFC应用程序,也有界面,但界面里的控件不需要自己去实现了,常用的控件都已经在MFC库内写好,直接拖动即可。
4)控制台与Win32、MFC的交互方式不同,前者采用的是CML(命令模式,也有人说是CUI(Console iser Input)),后者是GUI(用户界面)
5)Win32项目的界面比较符合UI界面设计;而MFC应用程序的界面基本都一样,因为它们都是同一套控件模板。

  • Windows应用程序的类型

-控制台程序Console
    DOS程序,本身没有窗口,通过Windows DOS窗口执行
  -窗口程序
    拥有自己的窗口,可以与用户交互
  -库程序
    存放代码、数据的程序,执行文件可以从中取出来代码执行和获取数据
    -静态库程序
      扩展名LIB,在执行文件执行时从中获取代码
    -动态库程序
      扩展名DLL,在编译链接程序时,将函数地址放入到执行文件中

  • 三种应用程序的对比

-入口函数
    控制台程序-main
    窗口程序-WinMain
    动态库程序-DllMain
    静态库程序-无入口函数
  -文件存在方式
    控制台程序、窗口程序-EXE文件
    动态库程序-DLL文件
    静态库程序-LIB文件
  -执行方式
    控制台-在DOS窗口内执行
    窗口程序-拥有自己的窗口中自己的窗口内执行
    动态库程序-本身无法执行,由可执行程序或其他的DLL调用
    静态库程序-执行不存在,代码会嵌入到可执行文件或DLL中

你可能感兴趣的:(Windows开发)