zoukankan      html  css  js  c++  java
  • Win32控制台、Win32项目、MFC项目、CLR控制台、CLR空项目、空项目区别

    转载:https://blog.csdn.net/zfmss/article/details/79244696

    1.Win32控制台

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

    2.Win32项目

    初始代码模版实现一个简单的windows窗口,以WinMain作为程序入口,引用了win32Api头文件和库,链接器subsystem参数为windows,编译出来会有一个简单的窗口。 

    3.MFC项目

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

    4. 如何选择

    windows提供win32 api以供程序员完成各种操作,所以控制台,win32,mfc都可直接调用win32 api。

    但直接使用win32 api,用代码完成诸如创建窗口,显示窗口等操作太过繁杂,于是我们把这些代码结合抽取取来,变成OOP中的类,也就是微软基础类库(MFC)。

    采用控制台还是win32 MFC,取决于是否需要同用户进行交互,以及交互的频率是高还是低。字处理软件需要实时查看编辑成果,所以采用了窗口;而一个木马程序,采用了窗口就会暴露自己,所以采用控制台。

    需要与用户进行大量交互或者要满足“所见即所得”,采取wn32 mfc;无需交互或者交互极少,采用控制台。

    只强调实用与开发效率,用MFC;强调用户体验与软件细节,使用WIN32。MFC可以实现的,WIN32都可以实现。反之不可。

    5.CLR控制台

    CLR控制台指的是使用C++语言开发基于.NET FRAMEWORK的控制台程序。

    也就是说,C++可以直接调用.NET的功能强大的类库,处理更多的事情,实现更多的功能,可以精简几乎50%以上的代码。

    WIN32控制台程序,是指用C++语言开发基于控制台的程序,也就是类似于CMD程序。

    WIN32窗体应用程序,是指用C++语言开发基于SDK的窗体程序,你看到的QQ,就是一个窗体程序。

     

    1 ATL项目,使用活动模板库的项目。用来做COM开发。
    2 CLR项目,与ATL类似。不过CLR是一个体系。用这个创建出来的工程,在所有支持CLR的编译器内均可以无障碍移植。
    3 MFC项目,可以使用MFC的类库。MFC是微软提供的用来windows开发的一个工具包。
    4 Win32项目,windows开发项目。可以使用windows相关API。与MFC不同的是,这里都是直接使用windowsAPI。
    5 除此以外,最常用的是命令行项目,即console。初学者使用这一个就足够了。
  • 相关阅读:
    JavaScript严谨模式(Strict Mode)提升开发效率和质量(转载)
    如何调用.Net中的非Public方法
    ViewState机制由浅入深1
    使用SQL向SQL Server2005中插入图片
    ViewState机制由浅入深3
    在服务器端修改HTML控件的属性
    ViewState机制由浅入深2
    IsPostBack深入探讨
    关于架构的小整理,仅限于个人
    关于文件操作的小方法
  • 原文地址:https://www.cnblogs.com/MCSFX/p/13267287.html
Copyright © 2011-2022 走看看