当前位置:首页 » 编程软件 » 编程修辞

编程修辞

发布时间: 2022-06-27 04:52:34

Ⅰ vc属于什么编程语言

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

WindowsSDK(软件开发工具)

VC的灵魂:MFC(微软基础类库)

ATL(ActiveX模板类库)

其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

VC是许许多多技术的综合,就好象少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础

3、C++最基本内容:类、继承性、封装性、多态性的概念

4、如何用向导建立一个程序框架

5、设计菜单

6、设计工具条

7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

11、熟悉最常用的MFC类:

CWnd

CDocument

CView

CDC

CDialog

CWinApp

CGdiObject及子类

CString、CPoint、CRect、CSize等简单数据类型

CFile

以上提到的这些内容,是每个人都会用到的内容。

二、MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

下面介绍最重要的MFC。

CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog对话框

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

三、用好MSDN和例子

作为提高,推荐看的例子有:

nHello最简单的程序框架

nScribble鼠标绘图。教程:编程基础,GDI

nDiblook图像处理最简单范例

nMFCIE因特网浏览器

nEnroll数据库

nDaoviewDao(数据访问对象)范例。树型和列视控件

nCubeOpenGL范例,画一个不断旋转的方块

nHierSvrOLE服务器

nOclientOLE包容器

nDrawcli鼠标绘图。也包括OLE。

nWordPad写字板。OLE

四、几点经验

A.为什么要用Windows而不是DOS编程

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

B.为什么要用VC而不是其他Windows编程语言

n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

nVC适合组织大工程(VB就不行)

nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

n

C.开始不要学WinAPI编程,但以后最好学学WinAPI

特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

#include“windows.h”

voidWinMain()

{

MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

}

当然这个程序只建立了一个最简单的对话框,但这已经够了。

如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

voidCYourView::OnDraw(CDC*pDC)

{

//…….其他的代码

pDC->TextOut(100,100,”HelloWorld!”);

}

但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

D.高级语言与自然语言

一门高级语言与一门自然语言是类似的。关键要素有三:

语法:了解C和C++基本语法,这是比较容易的。

修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好象小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

Ⅱ 学习编程语言应该注意些什么!

程序学习要点:
1、首先必须要有兴趣:无: 花很多精力、时间,效果很少;仅为了谋生,将会很艰难。所以要慢慢培养自己的兴趣,方法是多看一些相关的名人事迹,趣闻报道等。有了兴趣,事半功倍。
2、慎选语言。男怕入错行,女怕嫁错郎。目前主流C++、JAVA。选择语言,即选择以后的发展方向,所以必须要慎重。因为人的精力是有限的。选择语言之后,就要用心钻研。不要一出现一门新的语言就马上转过去。目前企业应用需要的人才最多,而最适合的语言是J。
3、不要幻想一下子成为高手,必须要脚踏实地,必须要遵循语言学习的规律。很多人一学习就开始使用全自动的J开发工具,必须要从J语言的本身入手,抓到J语言的本质,这样才不能成为工具的奴隶,而是将工具作为奴隶。
4、最重要是:多动手。只看书能够学到一些理论知识,但并不能发现细节问题,只要在实践时才能发现。
5、程序最终的结果就是代码。其它人最终也是在写代码,别人的编程思路也是在程序中。所以学习程序的一个捷径就是参考别人的代码。如去下载一些网上书店的源代码,即使没有书,只看源代码也能得到较大的进步。另外,随着水平的提高,还可以去看一些开源框架的源码,去学习它的思想,参考它的代码。
6、加强E文的阅读能力。能说最好;对于开发人员,更重要的是E文阅读能力。要学习一些新的技术,通常官方文档都是E文的。专业词汇本身并不多(不比得华丽的文字修辞词汇),只要你坚持慢慢去读,渐渐地就会发现阅读E文并不困难。
7、有问题,怎么办?深有体会。很多学生恨不得找到一个绝招,三二下搞定。这种浮躁的心理表现在一有问题就问老师、同学,这样就会推力解决问题能力。即使到了公司,一有什么小问题,你也无法搞定。所以从一开始就要多动脑筋、培养独立解决问题的能力。有了问题,求人不如求已,万不得已才请教别人,请教别人也是以问提示为主----注意,培训解决问题的能力比解决一个具体的技术问题的能力更为重要。一招鲜,吃遍天。
8、多读好书。好书?适合你的书。开始学习,薄书--少挫折,多信心;入书的看完以后,再用一本较厚的书来多实践。也可买一本比较全的书来作为参考。学习的方法很重要,学习的顺序也很重要。
9、使用适合的工具。强调:不要一开始学习J就使用全自动的开发工具,如Eclipse、JBuilder。有错误,很多时间都可以利用开发工具自动修改,而自动修改并不一定是你想要的结果。所以在一门语言的基础有所了解之前,尽量不要使用太自动的工具。
总结:以上讲了程序设计的学习要点,无论你选择什么语言,方法都是相通的。

Ⅲ vc是什么意思

一、VC是什么?学VC是学什么?

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

WindowsSDK(软件开发工具)

VC的灵魂:MFC(微软基础类库)

ATL(ActiveX模板类库)

其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

VC是许许多多技术的综合,就好象少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础

3、C++最基本内容:类、继承性、封装性、多态性的概念

4、如何用向导建立一个程序框架

5、设计菜单

6、设计工具条

7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

11、熟悉最常用的MFC类:

CWnd

CDocument

CView

CDC

CDialog

CWinApp

CGdiObject及子类

CString、CPoint、CRect、CSize等简单数据类型

CFile

以上提到的这些内容,是每个人都会用到的内容。

二、MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

下面介绍最重要的MFC。

CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog对话框

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

三、用好MSDN和例子

作为提高,推荐看的例子有:

nHello最简单的程序框架

nScribble鼠标绘图。教程:编程基础,GDI

nDiblook图像处理最简单范例

nMFCIE因特网浏览器

nEnroll数据库

nDaoviewDao(数据访问对象)范例。树型和列视控件

nCubeOpenGL范例,画一个不断旋转的方块

nHierSvrOLE服务器

nOclientOLE包容器

nDrawcli鼠标绘图。也包括OLE。

nWordPad写字板。OLE

四、几点经验

A.为什么要用Windows而不是DOS编程

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

B.为什么要用VC而不是其他Windows编程语言

n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

nVC适合组织大工程(VB就不行)

nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

n

C.开始不要学WinAPI编程,但以后最好学学WinAPI

特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

#include“windows.h”

voidWinMain()

{

MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

}

当然这个程序只建立了一个最简单的对话框,但这已经够了。

如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

voidCYourView::OnDraw(CDC*pDC)

{

//…….其他的代码

pDC->TextOut(100,100,”HelloWorld!”);

}

但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

D.高级语言与自然语言

一门高级语言与一门自然语言是类似的。关键要素有三:

语法:了解C和C++基本语法,这是比较容易的。

修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好象小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。
参考资料:http://sentven.blogchina.com/3647789.html

Ⅳ 学编程的要求有哪些

俗话说,没有金刚钻,就别揽瓷器活儿。套用到
IT
业,英语不行,就别做程序员。网上关
于程序员学英语的文章不少,
但我想谈谈我自己的看法。
首先详细讨论一下为什么程序员离
了英语不行,然后针对程序员应该怎么学英语说说我的体会。

英语是计算机的母语,是程序的母语,所以必然是程序员的母语。
程序中的变量名、函数名
起得好不好是决定代码质量和可维护性的最关键因素。
高质量的代码应该是这样的:
代码基
本上是自解释的(
self-explanatory
),不需要太多注释,不管代码的规模有多大,具有相
关知识背景的读过文档的人都可以立刻上手、
立刻参与维护和开发。
要想使代码能够自解释,
给变量和函数起个好名字很关键,
很显然,
只能用英文起名字,
一是用汉语拼音起名字可读
性很差,二是英文单词通常比汉语更
expressive
(看吧,如果用汉语来说,就得说“表达
能力更强”、“更有表现力”这么罗嗦)
,由于程序的复杂性,变量和函数往往表示一些很
抽象的概念,
起个既准确又简洁的名字并不容易,
可是很多时候,
用汉语需要很多字才能说
清楚的一件事,用英文一个单词再加点词形变化就能说清楚了。例如
APUE
上讲
sleep
函数
的实现,
其中有个变量表示“本来应该睡到某个时刻,
但是提前被信号唤醒了,
唤醒时与本
来应该睡到的时刻相差的时间”,
如果为了简洁而不求准确,
这个变量名至少也得叫“未睡
到”,而书中只用了一个单词
unslept
,非常准确、简洁地表达了这个意思。为了写程序而
学英语需要学到什么水平?我认为能起出这种变量名就够水平了。很多在
IT
外企工作的中
国人,说话写文章经常夹杂着英文单词(比我严重多了因为我不在外企),非常可以理解,
确实是为了表达得更准确简洁的需要,而不是纯为了
play
zhuangbility
。总之,要写程序
必须学好英语,
否则连变量名都起不好,
这虽然是一个非技术问题,但却是个根本问题,比
任何技术问题都重要。当然,现在很多编程语言也支持用
Unicode
字符给变量和函数起名,
但是你见过有人用汉字写程序吗?根本不实用。
有人会辩驳说一页英文翻译成中文往往只占
半页,中文不是更简洁吗?但是你算算打一页英文和打半页中文哪个敲键盘次数多。另外,
要读别人的代码也必须学好英语,如果你不知道
unslept
是由
sleep
变形而来的,就体会
不到其中的精妙,
只有大量阅读高质量的代码,
才能写出高质量的代码,
创作都是从模仿开
始的。

说说英语对于看书学习的重要性。
中文技术书和英文技术书的水平根本不在一个量级上,

是有很多原因的,
不能全归结于中文书的作者水平差。
最重要的是,
出中文书的低回报率决
定了作者不可能花太多心血在上面,你去
amazon
看看一本书卖多少美刀,再去
chinapub
看看一本书卖几块钱。
老外写一本书,
可以做到全书没有一个拼写错误
(当然英文的拼写检
查工具更完善也是部分原因),中文能找出一本没有错别字的书吗?
Knuth
可以悬赏让全世
界读者来找磋,
中文书作者有哪个敢这么做?不是因为老外态度有多认真治学有多严谨,

是因为他们赚到了,就应该拿出高质量的作品来,不然会被读者骂的。

英文技术书的翻译质量通常很差。
也不能归结于译者的水平差,
我也翻译过书,
也努力想译
好,但真的很难译好。
IT
业的新名词层出不穷,像“内核”、“网络”这种常见术语还好,
稍微专一点的术语都没有统一的译名。
我们在教学中发现,
很多学员看书时搞不清这本书的
名词
A
和那本书的名词
B
是什么区别,
来问老师,
才发现原来
A

B
就是一回事儿。
这是一
个单词对应多个译名的情况,
还有一个译名对应多个单词的情况,
比如
field

domain

realm
都译成“域”,
block

bulk
都译成“块”,
argument

parameter
都译成“参数”,
attribute

property
都译成“属性”,虽然这些词的意思本来就差不多,但是在一篇文章

里,作者可以换着用,不同的单词表示不同的概念,翻译完了一看,都成一个概念了。英文
书背后都有
index
,看到一半忘了某个名词是怎么定义的就可以翻
index
,而译文通常没有
index
,名词都已经乱七八糟了,没法做
index
。还有更发指的是,老外喜欢造词,现有的
单词上加一点变化和组合(例如有人喜欢说
automagically
),看着心领神会,想译出来就
很费劲。
老外即使在技术书中也经常用一些生动的表达方式和俏皮话,
而中文的书面语言非
常死板,
生动的表达方式只存在于口语中,
如果写在书上就很不像话,
这也是很难翻译的一
个重要原因。看中文译本,不仅质量差,而且跟不上时代,通常一本英文书出来,至少要等
一到两年才能看到中文译本。
两年啊!
等你看到这本书的中文译本时,
这个版本都快淘汰了。

然后说说英语在开发工作中的重要性。
看书学习通常只起一个引导入门的作用,
在工作中更
有用的是手册、文档。学完了
C
语言开始写程序了,谁还会去查
K&R
附录中的库函数?查
man page
才是最有效率的。然而手册比入门书更少有中文译版,因为手册是随时变的,会
随着软件版本更新,
而且需要看这些开发手册的人通常不会有英文障碍,
有英文障碍的人即
使看了翻译的手册也写不出好程序来,
所以当然没必要翻译了。
不管什么技术,
官方的手册
和技术标准才是最原始的第一手资料,
看别的书都是以讹传讹,
由于自然语言不可避免是有
歧义的,
文档中表达得不准确的地方就会被文档的读者也就是技术书的作者误解,
技术书中
再有表达不准确的地方又被译者误解。
我们小时候都玩过传话的游戏,
几个人站一排,
通过
悄悄话传一句话,传到最后变成什么了?所以,学网络协议,就得看
RFC
,学
ARM
,就得看
ARM
公司的
Architecture Reference Manual
,要学习
C
语言就得看
C99
,有歧义不要紧,
自己去揣测原作者的意思,总比道听途说的可靠。

我们的学员出去面试经常被问到的一个问题就是:
在开发工作中遇到问题,
书和文档上都没
有答案,网上搜一下也没有答案,怎么办?要我说,能看懂源代码的就去源代码中找答案,
这称为
hacking
,不管是内核、
libc
还是各种
framework
,你调用的东西有问题都能从它的
代码中找到原因。如果没有能力
hacking
,或者时间紧不想去
hacking
,最好的办法就是去
官方邮件列表和
IRC
问。
如果英文不行就没办法了,
只能去一些中文论坛:
“各位大虾帮忙,
小弟有一个问题求救!
跪求!

在线等!


”在线等了好几天也无人问津,
或者答非所问。
岂不知逛这些论坛的没有大虾,都是菜鸟,大虾们都在
IRC
上聊得正欢呢。我在做
Qt
开发
时曾经有一个问题,
当时在教育网,
上国外网不方便,
去各大中文论坛问了好几天也没人给
出满意的回答,后来花钱连了国外网,去
trolltech
官方新闻组提问,只等了几分钟就得
到了满意的解决办法。这次经历给我留下了深刻印象,从此以后再也没有去中文论坛。

那么,
如果现在英文水平很差,
又想做程序员,
应该怎么学英语呢?我下面说的方法有两个
前提,
一是你的英文至少达到高中毕业水平,
也就是语法基本都学完了,
即使用得不熟练也
知道有那么回事儿,二是你希望尽快在工作中用上英语,写程序够用就行,而不是有考
T

G
这样的更高要求。

学习英语有听说读写四个方面的要求,
做程序员至少需要读和写非常流畅,
如果在外企工作
还需要听和说的能力。技术英语和考
T

G
是不一样的,一是听和说不像读和写那么重要,
不必担心自己是“聋哑英语”,
没关系,
丝毫不影响你成为编程高手,
二是要求的词汇量要
小得多。

T

G
都要拿一本单词书背,
很少有人会觉得背单词很有意思,
至少我是觉得很
痛苦,
幸运的是看技术书不需要多少词汇量。
技术书的描述对象都是局限于一个很窄的领域
的,
就那么几个单词翻来覆去地用,
而且技术书是为了让人看懂的
(不像诗是为了让人看不
懂的)
,比较复杂的词在书中都有定义或解释。有些作者喜欢卖弄词汇量,
用一些很生僻的

单词,也有些作者卖弄一些典故,由于文化背景不同很难理解,不过这些通常都可以无视,
不会影响阅读,
还是因为技术书是为了让人看懂的。
对于学习者来说,
阅读能力是最重要的,
等你完成了学习,成为一个合格的开发者时,
需要写代码注释,需要写文档,需要通过邮件
交流,写作的能力才开始重要了。所以应该首先从阅读开始练习英语。

现在就拿起一本英文原版书开始看吧。
和学游泳一样,
阅读的能力只能通过阅读本身来练习。
我的经验是,
不必先系统学习了单词和语法再看书,
可以在看书时用到什么就补什么。
我建
议初学者看电子版,
因为现在的词典软件都可以鼠标取词,
边看边查很方便,
很多勤快人喜
欢把查过的单词都抄下来,我觉得没有必要,
反正查字典很方便,
下次再看到了就再查,多
查几次总会记住的,
抄下来就打断了看书的思路,
而且不见得抄下来就能记住。
也许是因为
我这人比较懒,
我用的都是懒办法。
很多人不喜欢看电子书,
理由是盯着屏幕看书太累,那
么盯着屏幕写程序累不累?这种人显然不适合做程序员。
语法不熟练怎么办?大多数情况下
单词的意思都明白了就不影响阅读。
技术书有时候喜欢用长句,
其中可能包含各种从句,

果实在读不懂就去查语法书,
同样也不需要把这种从句彻底弄明白,
只要这一句能看过去就
行了,以后多查几遍书,自然就掌握了。另外,技术书是说明文,通常不应该有过去时,看
到过去时就需要注意了,
很可能是虚拟语气,
如果不注意这一点,
看到的意思可能和真实的
意思正好相反。

应该从哪本书开始看起呢?从你当前最需要学的技术书看起。
看书是相当花时间的,
如果能
一边学英语一边学技术,
这时间利用得就很有效率。
比如,
如果你的
C
语言已经学得相当好
了,不要专门为了学英语去重看一遍原版的
K&R
。市面上有一些专门的计算机英语教材,我
的建议是不要看,浪费时间,
nonsense

初学时最好选一本有中文译本的书,有看不懂的地
方可以翻中文版来对照,
但是不要相信中文的翻译,
原因在前面讨论过了。
如果你是初学编
程,没有任何基础,我可以推荐一本英文很浅显技术也很浅显的书:
How To Think Like a
Computer Scientist
,有
Python

Java

C++
版本,可自由下载。

要逐渐养成良好的阅读习惯。
一是不要每个生单词都去查,
有些单词很生僻,
查了也记不住,
记住了也不会再见到它了,
但是前面讲过,
都是作者在卖弄词汇量,
无视它丝毫不影响阅读,
因此要学会猜测单词的意思,能不查就不查,继续贯彻“懒”的原则。二是看书不要动口,
不念出声也不行,
就是不要动口,
要努力在大脑中建立从词形到语义的直接映射,
如果只能
从词形到读音再到语义就太慢了,
严重影响阅读速度。
三是努力做到每句话都从头到尾只看
一遍,
不许回头反复看,
这一点比较难,
必须注意力高度集中,经常在记忆中暂存前面半句
的内容和句式才能做到,
但是一旦神功练成就会成倍地提高阅读速度。
最后一层境界,
学会
skim

就是略读,
很多优秀的作者在组织材料时会给读者一些建议,
比如这一段是扩展的高
级话题,和主线的相关度较低,
可以先
skim
到后面,注意不是让你
skip
到后面,这一段还
是要读的,
但是不必逐字句地读,
而是抓主旨,
大概讲了个什么概念
(有一些下定义的句式)

有哪些要点
(有数字编号或
bullet
列表项)

适用于哪些场合有哪些注意事项
(有
caveat

gotcha

noteworthy
这种字眼),后面可能还会碰到这个概念,虽然你没有仔细看这是个
什么东西,
但大体上也知道了,
这样就能不影响后面的阅读,
这不仅需要高度集中的注意力、
熟练的语言能力,
而且要有足够的背景知识去猜测性地理解。
但是语言能力还是最重要的因
素,我和几个同学交流过,他们也能熟练地看英文书,但是需要
skim
查一个东西时就觉得
还是不如中文书查得快。
skim
的技能在查阅手册时尤其重要,没有人会像看入门书一样把
上千页的手册从头到尾看一遍,
都是用到哪儿就查哪儿。
总之,
锻炼各种阅读习惯就为了一
个目的:如何在最短的时间内,
在保证正确性的前提下,
获取尽可能多的知识。程序员的学

习时间都是非常宝贵的。

以上本着“够用就好”的原则,
多次提到用懒办法,
但是学技术学英语这两件事不能懒,

在坚持。
要养成良好的阅读习惯也有很多东西需要坚持,
其中最根本的是持续高度集中注意
力,充分调动记忆能力、推理能力、猜测能力,就像考试做阅读题一样看每一段话。最根本
也是最重要的,
“有英文原版就不看中文版”这个原则一定要坚持。
一开始看英文书可能会
很慢,
但只要一直坚持就会慢慢达到原来看中文书的速度,
再坚持下去就会比中文书看得更
有效率,因为避免了很多歧义和术语翻译的问题。
有人会说,
项目紧任务急,看英文资料太
慢,
这次就先用中文尽快解决工作中的问题吧,
等以后有时间了再看英文书学习。
可是什么
时候才会有时间呢?工作总是一个接一个的,
老板怎么会付了工资让你闲着呢?如果你有这
样的困难,
我的建议是干脆辞职,学好了英文再去工作。
你只要想想,
你的同行们在外企全
英文的环境下工作,
英文和技术每天都在突飞猛进,
而你还在用效率极其低下的方式学习和
工作,
你和别人的差距不是越来越大了吗?另一方面,
现在的在校学生从小学就开始抓英语,
基础都很好,
很多高校也逐渐重视引进原版教材,
开设很多英文授课的专业课。
你再不奋起
直追,就不觉得以后的职业道路充满危机吗?

最后说说写作。
刚开始练习时不要怕写错,
能表达清楚自己的意思即可。
我看过很多源代码
和文档中的英文,一看就是中国人写的,谓语动词不分单复数,名词复数不加
s
,处处可见
中国式英语,
但是丝毫不影响我对这些编程大牛的景仰,
因为其中的思想我看懂了,
并且我
认为很强大。我有一个朋友,中学毕业就出来混的,由于工作的性质总要跟老外打交道,他
从来不惧和老外交流,
虽然连一个囫囵的句子都说不出来,
但总是能用中学学的那点单词让
老外明白他的意思,
这一点我就非常佩服。
总之就是说,
不要因为不知道怎么写是对的就不
敢动笔写,
只要敢交流,
并且别人能懂你的意思,
就是很有效的交流。
而且随着阅读量的增
加,自然能写出一手好英文,前面讲过了,创作总是从模仿开始的。不怕出错才能有一个好
的开始,
才能逐步练习提高,
而练习的最终目的当然还是希望写好,
不仅字句通顺无语法错
误,还能适当修辞。

Ⅳ VC是什么

一、VC是什么?学VC是学什么?

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

WindowsSDK(软件开发工具)

VC的灵魂:MFC(微软基础类库)

ATL(ActiveX模板类库)

其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

VC是许许多多技术的综合,就好象少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础

3、C++最基本内容:类、继承性、封装性、多态性的概念

4、如何用向导建立一个程序框架

5、设计菜单

6、设计工具条

7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

11、熟悉最常用的MFC类:

CWnd

CDocument

CView

CDC

CDialog

CWinApp

CGdiObject及子类

CString、CPoint、CRect、CSize等简单数据类型

CFile

以上提到的这些内容,是每个人都会用到的内容。

二、MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

下面介绍最重要的MFC。

CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog对话框

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

三、用好MSDN和例子

作为提高,推荐看的例子有:

nHello最简单的程序框架

nScribble鼠标绘图。教程:编程基础,GDI

nDiblook图像处理最简单范例

nMFCIE因特网浏览器

nEnroll数据库

nDaoviewDao(数据访问对象)范例。树型和列视控件

nCubeOpenGL范例,画一个不断旋转的方块

nHierSvrOLE服务器

nOclientOLE包容器

nDrawcli鼠标绘图。也包括OLE。

nWordPad写字板。OLE

四、几点经验

A.为什么要用Windows而不是DOS编程

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

B.为什么要用VC而不是其他Windows编程语言

n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

nVC适合组织大工程(VB就不行)

nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

n

C.开始不要学WinAPI编程,但以后最好学学WinAPI

特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

#include“windows.h”

voidWinMain()

{

MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

}

当然这个程序只建立了一个最简单的对话框,但这已经够了。

如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

voidCYourView::OnDraw(CDC*pDC)

{

//…….其他的代码

pDC->TextOut(100,100,”HelloWorld!”);

}

但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

D.高级语言与自然语言

一门高级语言与一门自然语言是类似的。关键要素有三:

语法:了解C和C++基本语法,这是比较容易的。

修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好象小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

Ⅵ 什么是VB什么是VC它们有什么区别

VB 是Visual Basic编程语言

1991年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是VB 2005(VB8)中文版。

Visual 意即可视的、可见的,指的是开发像windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。

Basic指的是Beginners all_purpose symbolic instruction code 初始者通用符号指令代码语言。

Visual Basic有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用Visual Basic开发一般Windows应用程序的人员,但是;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序。

VB是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,且功能强大可以与Windowsr专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。5.0版以后,Visual Basic推出了中文版,与前个版本相比,其功能有了很大提升。

在二十一世纪初,microsoft公司推出Visual Studio 2003与Visual Basic之间有了重大变化,Visual Studio为各种编程工具做了一个平台,Visual Basic.NET可在这种平台上运行。相对于传统VB,有很大的不同。VB.Net,首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容。2005年Visual Studio 2005则运用了NET 2.0的技术,更加的方便了程序员的工作。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持。

另外VB(V代表Vitamin)还有一个意思:维生素B

维生素B包括维生素B1、维生素B2、维生素B6、维生素B12、烟酸、泛酸、叶酸。这些B族维生素是推动体内代谢,把糖、脂肪、蛋白质等转化成热量时不可缺少的物质。如果缺少维生素B,则细胞功能马上降低,引起代谢障碍,这时人体会出现怠滞和食欲不振。相反喝酒过多等导致肝脏损害,在许多场合下是和维生素B缺乏症并行的。

以下是含有丰富维生素B的食品:

①含有丰富维生素B1的食品:小麦胚芽、猪腿肉、大豆、花生、里肌肉、火腿、黑米、鸡肝、胚芽米等。

②含有丰富维生素B2的食品:七腮鳗、牛肝、鸡肝、香菇、小麦胚芽、鸡蛋、奶酪等。

③含有维生素B6、维生素B12、烟酸、泛酸和叶酸等食品: 肝、肉类、牛奶、酵母、鱼、豆类、蛋黄、坚果类、菠菜、奶酪等。其中的维生素B1在人体内无法贮存,所以应每天补充。

B族维生素若想全部摄取比较困难,但是认真选择食物就可以简单且方便的摄取。上述含有维生素B的食物可以分为①和②③两组。看看上述分类就可以明白,②和⑧全都含在大体相同的食物中。因此①作为一组食物,②和③合在一起形成一组食物,组合选择两组食物,基本上可以把B族维生素摄取到手。

VB的还有第三种意思

价键理论
valence-bond theory

一种获得分子薛定谔方程近似解的处理方法。又称电子配对法。历史上最早发展起来的化学键理论。主要描述分子中的共价键和共价结合,其核心思想是电子配对形成定域化学键。
1927年W.H.海特勒和F.W.伦敦首次完成了氢分子中电子对键的量子力学近似处理,这是近代价键理论的基础。L.C.鲍林等加以发展,引入杂化轨道概念,综合成价键理论,成功地应用于双原子分子和多原子分子的结构。
价键理论是海特勒伦敦处理氢分子方法的推广,要点如下:①若两原子轨道互相重叠,两个轨道上各有一个电子,且电子自旋方向相反,则电子配对给出单重态,形成一个电子对键。②两个电子相互配对后,不能再与第三个电子配对,这就是共价键的饱和性。③遵循最大重叠原则,共价键沿着原子轨道重叠最大的方向成键。共价键具有方向性。原子轨道通常在某个特定方向上有最大值,只有在此方向上轨道间才有最大重叠而形成共价键。不同原子轨道有不同成键能力。原子轨道的最大值作为原子轨道成键能力的度量,鲍林给出s、p、d、f等原子轨道成键能力依次为1、3、5、7。在主量子数相同时,成键能力大的轨道形成的共价键较牢固。
价键理论与化学家所熟悉的经典电子对键概念相吻合,一出现就得到迅速发展。但价键理论计算比较复杂,使得后来发展缓慢。随着计算技术日益提高,该理论还会有新发展。

在以太网技术中,VB称做:虚拟网桥(Virtual Bridge)
VB其实是为了管理方便对管理域的一个划分,相当于一个虚拟的L2 Lanswitch。在城域网的应用中,VB是基于用户划分的。即:每个用户都有自己独立的VB,其中包含多个vlan标签和mac地址。由于各个VB之间相互隔离,不同的VB可分配相同的vlan而互不影响,而基于vlan划分VB的L2芯片不能区分不同用户的相同vlan。

一、VC是什么?学VC是学什么?

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

WindowsSDK(软件开发工具)

VC的灵魂:MFC(微软基础类库)

ATL(ActiveX模板类库)

其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

VC是许许多多技术的综合,就好像少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础

3、C++最基本内容:类、继承性、封装性、多态性的概念

4、如何用向导建立一个程序框架

5、设计菜单

6、设计工具条

7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

11、熟悉最常用的MFC类:

CWnd

CDocument

CView

CDC

CDialog

CWinApp

CGdiObject及子类

CString、CPoint、CRect、CSize等简单数据类型

CFile

以上提到的这些内容,是每个人都会用到的内容。

二、MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

下面介绍最重要的MFC。

CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog对话框

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

三、用好MSDN和例子

作为提高,推荐看的例子有:

nHello最简单的程序框架

nScribble鼠标绘图。教程:编程基础,GDI

nDiblook图像处理最简单范例

nMFCIE因特网浏览器

nEnroll数据库

nDaoviewDao(数据访问对象)范例。树型和列视控件

nCubeOpenGL范例,画一个不断旋转的方块

nHierSvrOLE服务器

nOclientOLE包容器

nDrawcli鼠标绘图。也包括OLE。

nWordPad写字板。OLE

四、几点经验

A.为什么要用Windows而不是DOS编程

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

B.为什么要用VC而不是其他Windows编程语言

n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

nVC适合组织大工程(VB就不行)

nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

n

C.开始不要学WinAPI编程,但以后最好学学WinAPI

特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

#include“windows.h”

voidWinMain()

{

MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

}

当然这个程序只建立了一个最简单的对话框,但这已经够了。

如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

voidCYourView::OnDraw(CDC*pDC)

{

//…….其他的代码

pDC->TextOut(100,100,”HelloWorld!”);

}

但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

D.高级语言与自然语言

一门高级语言与一门自然语言是类似的。关键要素有三:

语法:了解C和C++基本语法,这是比较容易的。

修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好像小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

================================================

Lchrennew:

以下内容由于曾经进行编辑替换(Replace)不让通过,所以采用附加(Append)的方式,在下面把我的版本加上,请大家对比:

VC是英文的缩写形式,其完整形式基本上包括如下几方面:

1. 医学、药品学、生物化学:Vitamins C,简写VC,音译“维他命C”,中文意译为维生素C,又被称为抗坏血酸。

[摘自http://..com/question/5925454.html]
1907年挪威化学家霍尔斯特在柠檬汁中发现。1934年才获得纯品,是无色晶体,属于水溶性维生素,易溶于水,水溶液呈酸性,所以称它为抗坏血酸。在酸性溶液中稳定,在中性或碱性溶液中易被氧化分解。铁、铜等金属离子能够加速其氧化速率。

维生素C在人体内的主要功能是:参加体内的氧化还原过程,促进人体的生长发育,增强人体对疾病的抵抗能力,促进细胞间质中胶原的形成,维持牙齿、骨骼、血管和肌肉的正常功能,增强肝脏的解毒能力。当人体中缺少维生素C时,就会出现牙龈出血、牙齿松动、骨骼脆弱、粘膜及皮下易出血、伤口不易愈合等症状。近年来,科学家们还发现,维生素C能阻止亚硝酸盐和仲胺在胃内结合成致癌物质——亚脱胺,从而减低癌的发病率。

2. 软件,计算机科学,Windows开发:Visual C以及Visual C++,由微软开发的可视化集成开发环境(IDE)Visual Studio中重要的一员,其编程规范符合ANSI C/C++标准,而其集成了微软开发的基础类库(MFC,即Microsoft Foundation Classes)以及可视化开发环境,VC提供了微软Windows操作系统的大量API,从而使得开发效率较其他语言大大提高。但是使用其MFC编写的程序只能运行在Windows操作系统下。

3. 经济金融领域、公司运作:Venture Capitalist,风险投资商,风险投资也叫“创业投资”,一般指对高新技术产业的投资。 作为成熟市场以外的、投资风险极大的投资领域,其资本来源于金融资本、个人资本、 公司资本以及养老保险基金和医疗保险基金。就各国实践来看, 风险投资大多采取投资基金的方式运作。

风险投资具有与一般投资不同的特点,表现在:

1)高风险性。 风险投资的对象主要是刚刚起步或还没有起步的中小型高新技术企业,企业规模小,没有固定资产或资金作为抵押或担保。由于投资目标常常是“ 种子”技术或是一种构想创意,而它们处于起步设计阶段,尚未经过市场检验, 能否转化为现实生产力,有许多不确定因素。因此,高风险性是风险投资的本质特征。

2)高收益性。风险投资是一种前瞻性投资战略,预期企业的高成长、高增值是其投资的内在动因。一旦投资成功,将会带来十倍甚至百倍的投资回报。 高风险、高收益在风险投资过程中充分体现出来。

3)低流动性。风险资本在高新技术企业创立初期就投入 ,当企业发展成熟后, 才可以通过资本市场将股权变现,获取回报,继而进行新一轮的投资运作。因此投资期较长,通常为4~8年。另外,在风险资本最后退出时,若出口不畅,撤资将十分困难, 导致风险投资流动性降低。

从本质上来讲, 风险投资是高新技术产业在投入资本并进行有效使用过程中的一个支持系统,它加速了高新技术成果的转化,壮大了高新技术产业, 催化了知识经济的蓬勃发展,这是它最主要的作用。当然,对于整个国家经济而言, 风险投资在推动企业技术创新,促进产业机构的调整、改变社会就业结构、 扩大个人投资的选择渠道、加强资本市场的深度等方面都有重要的意义。

VC 德国vision components公司的缩写,在业界名气很大。

德国vision components公司是世界上公认的智能摄像机领导厂商。其摄像机产品将图像采集、处理、I\O控制及通信集于一体。并且采用了当前性能最强大的图像处理专用DSP,智能化程度高,搭建系统成本低,是用户构造机器视觉系统的理想选择。
VC智能摄像机特征:
1.与PC机相匹敌的运算速度
2.与生产线上其它设备连接方便
3.能直接在显示器上输出SVGA或SXGA的视频图像
4.提供高度开放的图像处理库和一些常用库
5.能进行源码级的二次开发
6.工作过程可完全脱离PC机

VC还是NBA着名球员文斯-卡特(Vince Carter)的缩写

Ⅶ 编程语言和自然无言的的共同点和区别

共同点:表达人类的思想,具有词汇、语句、段落,并遵循一定的语法规则。
不同点:
编程语言:有限的、没有歧义的词汇,表达的含义简单,且具有确定性;
自然语言:词汇具有多义性,表达方式多样性,具有很多的修辞手段,使得语言具有丰富的内涵。

Ⅷ 我想问一些,学编程,是不是就是学函数

你学的太简单了,没有深入的学习一门语言,其实学习一门语言,学的是思想。你说的那些是语法,就像你会说中文,中文有语法,但是你不一定知道中国的历史、文化。编程语言也是语言,文化就是编程思想。
1、学习编程语言的思想就要深入的了解一种语言设计出来的目的,为什么要这么设计。比如面向对象思想,不管是java还是c#都是这个思想,只是具体的语法不同,只要你掌握了思想才能写出高质量的程序。什么是面向对象,面向对象有什么优缺点,能设计出什么样的结构的程序,这些你懂吗?不懂就说明你根本没学会这门语言。你说简单?这些都不懂怎么能说简单。你学的那些只是一些基本的语法。就像你出生以后才会说话一样。只会说简单的:我要吃饭,我要睡觉。但是不会有修辞,不会有复杂的逻辑、情绪。
2、你说的那些语法也不是那么简单的。虽然你看着每种语言的语法都差不多,if else,when,while等等。但是每种语言这些东西的用法都不相同,有很多独有的用法。为什么有这些用法?这么用有什么道理,有什么优缺点?这些你懂吗?为什么有了for还要有while,这些都值得去研究的。这些简单的语法通过组合能达到什么经典的效果。都很有学问的,不能只是有了一个肤浅的认识就说简单。
你有这样的想法其实也很正常,初学者一般都会这么认为,但是学习一门技术需要持续坚持的学习,要不断的深入,不能停留在很浅的部分,你知道流程控制,表达式,循环,那么让你做个界面连个数据库,进行简单的操作,你会吗?不会就去学吧。

Ⅸ 什么是vc

维生素c
维生素C参加体内的氧化还原过程,促进人体的生长发育,增强人体对疾病的抵抗能力,促进细胞间质中胶原的形成,维持牙齿、骨骼、血管和肌肉的正常功能,增强肝脏的解毒能力。当人体中缺少维生素C时,就会出现牙龈出血、牙齿松动、骨骼脆弱、粘膜及皮下易出血、伤口不易愈合等症状。近年来,科学家们还发现,维生素C能阻止亚硝酸盐和仲胺在胃内结合成致癌物质——亚脱胺,从而减低癌的发病率。

维生素C主要生理功能:

1、 促进骨胶原的生物合成。利于组织创伤口的更快愈合;

2、 促进氨基酸中酪氨酸和色氨酸的代谢,延长肌体寿命。

3、 改善铁、钙和叶酸的利用。

4、 改善脂肪和类脂特别是胆固醇的代谢,预防心血管病。

5、 促进牙齿和骨骼的生长,防止牙床出血。;

6、 增强肌体对外界环境的抗应激能力和免疫力。

维生素C缺乏和疾病:

维生素C缺乏时,其症状表现为:

1. 牙龈肿胀出血,牙床溃烂、牙齿松动。

2. 骨骼畸形、易骨折。

3. 伤口难愈合等。进一步则引起坏血症、贫血。

4. 大出血和心脏衰竭,严重时有猝死的危险。

5. 肌肉纤维衰退,包括心肌衰退。

含维生素C的食物很多,猕猴桃和辣椒中含量最丰富.

VC
一、VC是什么?学VC是学什么?

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

WindowsSDK(软件开发工具)

VC的灵魂:MFC(微软基础类库)

ATL(ActiveX模板类库)

其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

VC是许许多多技术的综合,就好像少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础

3、C++最基本内容:类、继承性、封装性、多态性的概念

4、如何用向导建立一个程序框架

5、设计菜单

6、设计工具条

7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

11、熟悉最常用的MFC类:

CWnd

CDocument

CView

CDC

CDialog

CWinApp

CGdiObject及子类

CString、CPoint、CRect、CSize等简单数据类型

CFile

以上提到的这些内容,是每个人都会用到的内容。

二、MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

下面介绍最重要的MFC。

CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog对话框

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

三、用好MSDN和例子

作为提高,推荐看的例子有:

nHello最简单的程序框架

nScribble鼠标绘图。教程:编程基础,GDI

nDiblook图像处理最简单范例

nMFCIE因特网浏览器

nEnroll数据库

nDaoviewDao(数据访问对象)范例。树型和列视控件

nCubeOpenGL范例,画一个不断旋转的方块

nHierSvrOLE服务器

nOclientOLE包容器

nDrawcli鼠标绘图。也包括OLE。

nWordPad写字板。OLE

四、几点经验

A.为什么要用Windows而不是DOS编程

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

B.为什么要用VC而不是其他Windows编程语言

n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

nVC适合组织大工程(VB就不行)

nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

n

C.开始不要学WinAPI编程,但以后最好学学WinAPI

特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

#include“windows.h”

voidWinMain()

{

MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

}

当然这个程序只建立了一个最简单的对话框,但这已经够了。

如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

voidCYourView::OnDraw(CDC*pDC)

{

//…….其他的代码

pDC->TextOut(100,100,”HelloWorld!”);

}

但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

D.高级语言与自然语言

一门高级语言与一门自然语言是类似的。关键要素有三:

语法:了解C和C++基本语法,这是比较容易的。

修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好像小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

================================================

Lchrennew:

以下内容由于曾经进行编辑替换(Replace)不让通过,所以采用附加(Append)的方式,在下面把我的版本加上,请大家对比:

VC是英文的缩写形式,其完整形式基本上包括如下几方面:

1. 医学、药品学、生物化学:Vitamins C,简写VC,音译“维他命C”,中文意译为维生素C,又被称为抗坏血酸。

热点内容
c语言是啥意思啊 发布:2024-05-08 06:01:09 浏览:695
帝豪换压缩机 发布:2024-05-08 05:42:15 浏览:902
java文件时间 发布:2024-05-08 05:32:04 浏览:267
空气压强算法 发布:2024-05-08 05:29:47 浏览:294
c语言中double的范围 发布:2024-05-08 04:53:29 浏览:122
脏小豆服务器怎么加入 发布:2024-05-08 04:40:40 浏览:552
万立存储介质 发布:2024-05-08 04:33:02 浏览:637
ftppro特效复制方法 发布:2024-05-08 04:06:05 浏览:927
平板电脑编译软件 发布:2024-05-08 04:05:46 浏览:478
荣耀v6平板扩展存储 发布:2024-05-08 03:41:12 浏览:423