初学VC相关资料

  • 格式:doc
  • 大小:30.00 KB
  • 文档页数:3

候捷《深入浅出MFC》

孙鑫《vc++深入详解》

王艳平《windows 程序设计》

入门看 《vc++技术内幕》 英文是

inside vc++ 主要介绍mfc应用

c++基础 看 《thinking in c++》

SDK和MFC的区别

SDK 就是Software Development Kit 软件开发包

MFC 就是Microsoft Foundation Classes 微软函数类库

MFC是对API函数的封装,也算是vc里的SDK

用VC编写Windows程序有两种:1. Windwos c方式(SDK),2.C++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等。SDK编程就是直接调用Windows的API进行编程,平时人们常说"用SDK写程序"就是指用Windows的API函数来写程序,API由上千个API函数组成(Win95的API有两千多个)。而MFC是API的封闭,结合面向对象程序设计的继承性和多态性组成一个个的"类",共由一百多个类组成。尽管MFC比SDK方便,但要深入VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。所以学VC最好是先学用SDK编写程序,在此期间深入掌握Windows操作系统的工作原理和各API函数的应用,然后再深入MFC. SDK是基于C语言的,而MFC是基于C++的,这是最根本的区别。MFC主要封装的是界面、文件、WinInet和线程等函数。MFC除了封装API,最重要的是它的体系结构,它所使用的Doc/View结构是SDK中没有的,这种架构是比较特殊的。尽管Doc/View结构不是微软的发明,但它是MFC的特色。微软开发Windows时使用的是C语言,所以最初设计SDK时并没有考虑C++。

Win32 Application与MFC AppWizard的区别:

Win32 Application:

意思就是叫你用单纯的C++语言,在Win32下面进行编程,一般在Win32下编程,简单的步骤是:

(1)设计窗口类 (2)注册窗口类

(3)Create窗口

(4)显示窗口

(5)更新窗口

(6)消息循环(关键)

MFC AppWizard:

微软为了减轻开发人员的工作负担,推出了MFC,MFC其实是一个框架,里面包含了200多个类,MFC比较复杂,MFC框架把基本的功能都实现了,你只是需要把你特殊的功能加到MFC里面,

打个比方,Win32 Application下,就像做饭,什么都要你来做,而MFC下,东西都基本做好了,就等着你去调味道而已。。

win32 appication与 win32 console appication控制台应用程序的区别:

win32 appication

有图形界面

是基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。

win32 console appication

是控制台应用程序,没有图形界面

是基于DOS开发平台开发应用程序,不能使用与图形有关的函数,控制台程序。

文件本身有区别:在文件头里(PE头)有一个标记表明该文件是Application还是Console

在创建对应的进程时,如果是Console,除了载入文件映像并开启进程外(这一点和Application相同),同时创建一个Console对象(就是那个黑黑的窗口)与之关联,而且这种关联是可以编程脱开的.

///////////////////////////////////////////////////////////////////////////////////////////////////////////

Win32 Application和Win32 Console Application

都是工作在32位Windows环境的程序。

其中Win32 Application

就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的……

它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。

Win32 Console Application(win32控制台应用程序)

往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它;

或者叫CUI(Character User Interface字符用户接口)。

vc6里Win32 Application和Win32 console Application的区别

很多VC初学者可能会常遇到如下链接错误:

Linking... /subsystem:windows

() : error LNK2001: unresolved external symbol _WinMain@16

Debug/ : fatal error LNK1120: 1 unresolved externals

Error executing .

解决方法是:将project-settings-link的project options里的

/subsystem:windows

改成

/subsystem:console

原因:Win32 Application的入口函数为WinMain

Win32 Console Application的入口函数是main

换句话说,如果你编写传统的C程序,必须建立Win32 Console程序,但VC里面默认的是Win32 Application,于是上面提及的链接错误就就经常出现了 ,而Win32 Application和Win32 Console的区别就在于VC里链接参数不同。