MFC编程与SDK编程

来源:互联网 发布:linux cc攻击脚本 编辑:程序博客网 时间:2024/06/04 18:03

添加的脚本是指框架;

MFC AppWizard(exe)  MFCMicrosoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,C环境是面向过程的不支持MFC,MFC只封装在C++里,MFC无法在C环境中使用
,是一套面向对象的函数库,MFC采用面向对象设计,将大部分的Windows API封装到C++类中,以类的方式提供给用户使用。MFC中,类的命名都以字母“C”开头,利用这些类,可以有效地帮助程序员完成
Windows应用程序的开发。MFC是建立基于MICROSOFT FUNDATION CLASS的工程;一般的MFC的应用程序,可以生成单文档、多文档或对话框程序框架;MFC其实是一个框架,里面包含了200多个类,MFC比较复杂,MFC框架把基本的功能都实现了,你只是需要把你特殊的功能加到MFC里面,比如你想建一个windows窗口,MFC APPWIZARD下,MFC中自包含了CWnd串口类,但是win32 application,就是要你自己写一个窗口类,才能用。

 

对于一个单文档应用程序(即我们在创建工程时第二步所选的Single document),都有一个CMainFrame类,和一个以“C+工程名+App”为名字的类、一个以“C+工程名+Doc”为名字的类、一个以“C+工程名+View”为名字的类。作为读者,在刚接触MFC的程序时,一定要逐步熟悉MFC AppWizard所生成的这几个类,以及类中的代码。这样才能在阅读程序时,知道哪些类、哪些代码是向导生成的,哪些类、哪些代码是我们自己编写的。 

MFC AppWizard是一个辅助我们生成源代码的向导工具,它可以帮助我们自动生成基于MFC框架的源代码。该向导的每一个步骤中,我们都可以根据需要来选择各种特性,从而实现定制应用程序。

Win32 Application 其他WIN32的WINDOWS应用程序,可以生成基于SDK的窗口程序框架,是普通的常见的窗口应用程序;是为你开发windows应用程序所准备的,程序以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。Win32应用程序有一条很明确的主线:首先进入WinMain函数,然后设计窗口类、注册窗口类、产生窗口、注册窗口、显示窗口、更新窗口,最后进入消息循环,将消息路由到窗口过程函数中去处理。遵循这条主线,我们在写程序时就有了一条很清晰的脉络。但在编写MFC程序时,我们找不到这样一条主线,甚至在程序中找不到WinMain函数,是因为微软在MFC的底层框架类中封装了这些每一个窗口应用程序都需要的步骤,目的主要是为了简化程序员的开发工作,但这也给我们在学习和掌握MFC程序时造成了很多不必要的困扰,因此为了更好地学习和掌握基于MFC的程序,有必要对MFC的运行机制,以及封装原理有所了解。在第1章就讲述了WinMain函数是所有Win32程序的入口函数,就像DOS下的main函数一样。我们创建的这个MFC程序也不例外,它也有一个WinMain函数,但这个WinMain函数是在程序编译链接时,由链接器将该函数链接到当前程序中的。

 

Win32 Console Application WIN32的控制台应用程序,类似DOS窗口的那个效果。console程序以main()为入口,不能使用win32 API函数;

 

API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如 VCL 和 MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数。

VC是以C++为语言基础的开发工具,而C++是C语言的扩充,故要学好VC最好是先学好C和C++。

尽管MFC比SDK方便,但要深入VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。所以学VC最好是先学用SDK编写程序,在此期间掌握Windows操作系统的工作原理和各API函数的应用,然后再深入MFC。

 

用VC6的IDE(集成开发环境)来编写SDK程序,启动VC6后选择File菜单的New...选项,在出现的New对话框的Projects标签内选择Win32 Application,然后在Projects Name指定项目的名字,在Location中指定路径后按OK按钮,在出现的对话框中,如果你想要用C语言来写程序可以选择An emtpy project,如果你想创建一个带有WinMain入口函数和普通参数的设定的项目,可以选择A simple Win32 application,如果您想创建一个简单典型“Hello World!”Win32SDK application应用程序,可以选择A typical "Hello World!" application。确定项目类型后按Finish完成。
  在VC6环境下,你依然可以使用资源编辑器和ClassWizar等工具完成程序的编写。用SDK编写程序关键是能够了解程序的来龙去脉。如果不了解,当然那样效率会很低,不比VB、PB那么快,任何东西都是有得有失,如你熟悉用SDK写程序后,对MFC会比较容易上手的,关键要熟悉C++的三大特性。

VC: Win32 Application和Win32 Console Application、MFC APPWIZARD区别

见文章:http://apps.hi.baidu.com/share/detail/2037585

 

mfc既然封装了api,提供了基本框架,只要填写自己的关键代码就行了,为啥还需要要用win32的api来编程

见:http://www.cxzz.net/vc/bcahdcabc.html   论述的很经典

 

MFC AppWizard VC++深入详解

见:http://zilan1986.blog.163.com/blog/static/8278126200862010332684/

 

MFC与SDK

见:http://yujianhuabc.blog.163.com/blog/static/1174183120078231122713/?fromdm&fromSearch&isFromSearchEngine=yes

Windows SDK

见:http://roz1987.blog.163.com/blog/static/11639295820094177551648/?fromdm&fromSearch&isFromSearchEngine=yes

SDK见:http://litaohill.blog.163.com/blog/static/939693622010012112157256/?fromdm&fromSearch&isFromSearchEngine=yes

SDK, API 和 MFC 的区别

http://www.oneie.com/viewthread.php?tid=37478