Vc

转载 2006年05月22日 17:34:00

其实语言并没有好坏之分,每种开发工具也都有它的价值,各有优缺点,更重要的是如何根据具体的任务选择合适的工具并利用这些工具来完成工作。现在在WINDOWS平台下编程,VB和DELPHI可以满足大多数的应用,而且速度不会很慢。使用VC主要是用来开发系统软件和大型工具软件以及开发游戏。


读者评分 13 评分次数 3

正文
1. vc的用处

    我感觉下面一些领域比较适合于用vc: 操作系统编程,game,图形设计,corba编程,com编程,网络编程。
    我谈谈我的体会。我现在在深圳的一家公司从事IP电话网关的开发。通过这个项目,我才真正体会到VC有多么强大,上百个线程同时工作,数据库并发访问,而且全部软件基于COM构造,这样高性能的大型软件,只有VC方显出其英雄本色!不过,在国内,有机会接触这样的大型系统软件的不多。而在做大型系统软件时,对VC程序员的要求就不仅仅是熟悉VC、MFC本身了,这只是基本的要求,最大的挑战是你如何运用VC实现一些高级的功能特性。
    其实,VC做数据库也不是不合适,关键在于你要抛开所谓的例子程序,直接从底层(SQL)做起。那么,你会有一种天高任鸟飞的感觉:爽。数据库与界面全部在你的控制之下。
    前一段时间,做一个很大的管理系统(每个纲要540多个表12000多个数据项,纲要数不定),并且还要通过CORBA实现跨平台、通过ODBC跨数据库。如果通过什么PB、BCB、Delphi等等快速开发工具(并且做MIS是所谓强项)将会很难自由发挥的。
    我以为它比较适合一些需要底层控制的场合,特别是一些使用现有控件不太理想的情况下,VC的自由度就比较高。VC是把全能的瑞士军刀,不过对于一些较简单的功能,比如 开酒瓶之类的用个开瓶器就更方便一些。
    VC可以写WEB上的控件。
    VC可以开发优秀的基于通信的程序。
    VC可以开发高效灵活的文件操作程序。
    VC可以开发灵活高效的数据库操作程序。等等等等
    VC是编CAD软件的唯一选择!!!包括AUTOCAD,UG的二次开发。
    小到只是一个Windows的标准界面 那象这样的程序用VC++确实大才小用了,因为有比VC++ 开发界面更快的编译系统,但如果这个界面极其复杂 复杂到要用很多的数学方法(例三维游戏的)那也要用到VC++才能搞定就我使用VC++的这几年经验来看,VC++非常适合于系统程序设计,正如C语言是Unix的标准系统程序设计语言。
    在多线程、网络通信、分布应用方面,VC++有不可比拟的优势。 当然随着系统程序开发的机会越来越少,VC++的应用领域的确会逐渐缩小。
   如果说到Windows下的可视化开发工具现在大家接触得最多的就是VC,VB,DELPHI,BCB,一些可视化开发的JAVA。其实我觉得VC并不能完全算是一个可视化工具,这表现在VC中编写代码还是占了开发工作的大部分时间。而其他的可视化工具中都在界面设计中耗费了大量的开发时间。我一直使用VC的原因就是因为我能够一直将注意力集中在软件功能开发上而不是界面设计上。我认为这样能够在开发的过程中更加自由和有更多的控制 权。而且这种情况下产生的代码维护性更强。举个简单的例子,在维护VB代码时如果没有一份详细的说明和流程就会使维护变得不可能,我想其他的基于界面开发的工具都会或多或少的产生这样的问题,因为在开发过程中开发工具将一个完整的流程分离成为多个部分,在开发完成后这些部分就很难统一起来。
    选择什么样的工具的前提是你的开发目标,如果你希望开发一个很大的系统你就不应该选择面向基于界面开发的工具,但你可能会选择VB来开发前端的客户软件,而后台使用VC来实现。 对于一些并不是很复杂的软件来讲,界面和操作方式可能是非常重要的,所以选择VB,CBC都可以缩短开发时间。这时候选择VC就有些不智。 所以我认为使用VC开发的朋友应该将更多的注意力集中在实现软件功能的流程上,多从整体角度看问题。我想这一点来说其他的可视化开发工具是很难达到的,因为VB,CBC等开发的程序在很大程度上都是用各种控件“堆”出来的,这会在后期的维护升级过程中带来很多的不便,例如要替换掉一个控件就可能会对整个程序的结构产生非常大的影响。 最后我想说的是每种开发工具都有它的价值,也各有优缺点,更重要的是如何根据具体的任务选择合适的工具并利用这些工具来完成工作首先要搞清楚VC能干什么.很多人只是听说VC是最好的开发语言,便去学习,就象大家听说辟邪剑谱厉害,便都去抢着学一样,都是很盲目的。其实语言并没有好坏之分,我在用C之前,一直觉的BASIC 是最好用的语言。现在在WINDOWS平台下编程,VB和DELPHI可以满足大多数的应用,而且速度不会很慢。使用VC主要是用来开发系统软件和大型工具软件以及开发游戏。

2 .如何学好vc
2.1
    先期条件:英语要好 看懂MSDN 要学好vc,先学好英语,再去codeguru.com之类的网站d/l source code。学好vc=英文好+基本功好+勤奋+聪明。
    1.先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;尤其封装,继承,多态一定要精 不要让vc的各种特性分散注意力。这一阶段,可以把重心放到研究算法上
    2.在基本上掌握了语法之后,开始接触简单的系统API,学习 Windows的编程原理和机制; 先了解Windows系统的消息机制(多任务,消息映射等)。一开始用基本的SDK形式来开发几个程序作为入门(WinSDK编程就是直接调用Windows的API进行编程)(SDK全称是SoftwareDevelopers Kit,意思是软件开发工具箱)(API全称是application programinterface,意思是应用程序编程接口)。开始进行WinSDK编程用C语言最好,可以撇开C++的特性专心熟悉一下Win32编程的思路以及了解windows的消息运行机制。可以编写简单的菜单程序,可以简单地在WM_PAINT下操作 GDI函数当你可以熟练的使用C语言进行WINDOWS程序设计了,你可以尝试面向对象的方法了。
    3.用MFC来开发程序(MFC全称Microsoft Foundation Classes,是把WinAPI进行封装的类库,它是一个类的集合,通过覆盖WinAPI,为编程提供了一个面向对象的界面。它使windows程序员能够利用C++面象对象的特性进行编程,类似BCB的OWL,Delphi的VCL组件。它把那些进行SDK编程时最繁琐的部分提供给程序员,使之专注于功能的实现。你不妨把它想象成类似TC提供的函数库吧。)。开始学习MFC,可以从Step tourist学起,看MFC的 源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。 在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。 再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。 并选择发展的方向. 如果你有一个别人的好程序, 不妨自己跟着他的思路,从小到大自己完成一遍。
    4.到了一定程度,一定要学ATL,OLE/COM。需要实际项目的磨练研究OLE/COM技术。 COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的操作系统的技术趋势,以不变应万变。

    从1998.3-1998.5,我基本上是每天攻读八小时VC,包括看书和上机。那时正上大三,精力充沛,受的起没完没了的失败和痛苦,终于在五月某一天的一节“汇编语言”课上突然想通了,立刻逃课去上机。就这样我入门了。之后我也象大多数的人一样学习它的所谓GUI,doc/view结构,打印之类。有一天醒来我突然想:我学这些干嘛吗?朋友!惊醒呀!人的精力是有限的,正所谓“术业有专攻”,VC说到底,它也是一个工具,学会使用这个工具并不是目的,而仅仅是开始!于是我开始寻找我的方向。
    综合我的方向有:
    1.网络编程。主要是基于TCP/IP的Winsock编程,已完成一个FTP的客户端编写,正在写一个FTP服务器。
    2.通讯编程,主要是串行通讯。
    3.三维动画,主要是用OpenGL API,一般用来写界面。

    我的毕业设计就是以2和3为基础。我的一些意见:不要对VC控件抱太大希望,除了基本控件,使用其他控件会使你比用API还繁;尽量使用MFC而不是API;尽早定位自己,寻找方向,不要什么都学,人贵专攻;要了解消息机制,多线程和同步机制,更有回叫(CallBack)机制等,这是VC程序员的基本知识。WINDOWS 和 UNIX操作系统都是复杂的多任物系统,提供了一大堆应用编程接口(API,通常是C语言的函数)程序员使用c语言调用这些API便可以开发该系统下的应用程序了。这与dos时代的编程接口是不一样的,那时侯的函数库是由开发环境提供的(如Turbo C) ,不具有很好的封装性和设备无关性。每当新版的WINDOWS操作系统发行,便会提供一个相应的plantform SDK(软件开发包),开发者可以用SDK 编译C程序。vc的核心就是MFC,MFC是个C++类库,就象结构化程序设计时代的C语言函数库一样 ,给程序员提供了丰富的编程接口,简化了程序的设计。 而MFC就是直接把WINDOWS的C语言编程接口API函数用C++的类封装而成! 这样既实现了面向对象的编程思想,又直接使用了WINDOWS的原始编程接口,代码的效率是 最高的。Window是由个许多DLL搭起来的系统的总称,开发Window程序就是如何调用这些DLL,对于C程序员,它提供了.h/.lib,这些东西和一些文档就构成SDK,DDK...他们在任何支持DLL调用的开发环境中都可以使用(即函数指针)。2.通常SDK指与Window核心调用有关的...但并不是专用名称。也用于其他地方。
    VC只是一个编程工具,就如BC、BCB、Delphi一样,其实对于编程最根本的就是三个方面,语言、开发包、操作系统API,他们三个方面应该说是相对比较独立的。
    VC是MS开发的,所以针对的是windows api,你可以不会C++,也可以在VC下用C写出很优秀的程序,当然如果你比较熟练C++,并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程可以是这样的:
    1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;
    2、在基本上掌握了//语法之后,开始接触简单的系统API,学习Windows的编程原理和机制;
    3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。在学习的过程中为了给自己增加点挑战,尽量不要使用resourceedit,试着自己编码实现控件的创建,消息的响应。再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。

结合本人学习VC编程的过程和体会,向大家介绍一下怎样学习编程。
此文对于新手或许有益,对于高手而言也许就贻笑大方了。

    首先,应该学习C++语法和面向对象编程的思想;
    接着,用C语言实现一个Windows程序,感受Windows消息触发机制的原理;
然后,结合三本书(VC入门书、MFC库参考书和Windows API参考书)系统
学习VC编程;
   要搞明白的是,要想学好VC编程,以上要素是必备的,即需要有C++基础,
有面向对象思想基础,了解Windows消息驱动机制,熟悉Visual Studio工具,
熟悉MFC库,熟悉Windows API。
   学习的方法当然是多看书,多思考,多看代码,多编代码。没有捷径可言。
根据各人的资质和努力,大约半年后才有小成。
   最后,还应该根据各人的兴趣和需要,向数据库或网络或多媒体等方向
挺进,还有COM、DCOM以及Windows内核编程等等。到了这种地步,程序员在
Windows平台上的应用开发才可以说是到达了一个很高的境界。但这只是指
应用开发而言。一个真正热衷编程的程序员还应该向操作系统级的编程进发。
开发Windows的程序员当然比在Windows上作开发的程序员水平要高(我个人
的看法)。
   总之,学无止境,程序设计也是一项艺术,程序员并不只是一个“匠人”
而已。

1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些在编程中常犯的错误。更重要的是理解并能运用C++的各种特性,这些在以后的开发中都会有很大的帮助,特别是利用MFC进行开发的朋友对C++一定要能熟练运用。

2、理解Windows的消息机制,窗口句柄和其他GUI句柄的含义和用途。了解和MFC各个类功能相近的API函数。

3、一定要理解MFC中消息映射的作用。

4、训练自己在编写代码时不使用参考书而是使用Help Online。

5、记住一些常用的消息名称和参数的意义。

6、学会看别人的代码。

7、多看书,少买书,买书前一定要慎重。

8、闲下来的时候就看参考书。

9、多来我的主页。


先要弄清楚 我们说的VC是指什么
vc可能包含的范围有:vs开发环境,MFC库,C++
你要学习VC基本上包含这三方面的内容,当然,真正深入学习还有其他,如COM/COM+,ATL等,但这个已经不是VC本身的东西
为什么学习VC让人觉得难,那时因为刚开始学的时候没有好的导师(或者有经验的“高”人指导)
基本上,如果没有一定的基础直接学VC,那么你会需要花很大力气去熟悉VC开发环境和MFC类库,
学mfc是一项让很多人有挫折感的事情,
所以如果你学的过程中有此感受 请不必气馁,也不要去钻牛角尖
当你可以根据书上的例子编几个小程序,对VC有一个感性的认识之后,你就可以开始兼顾其他的方面了
想要用好VC,需要的并不是只有VC本身的知识,还需要其他一些东西:
1、对纯C++有一定的功力,几本好书如:
     《C++ primer》,《Accelerated C++》是入门就可以看的好书,都有中文版卖,电子书要自己找,更进一步的书诸如《EFFECTIVE C++》,<INSIDE THE C++ OBJECT MODE>,《The C++ Programing Language》,还有泛型编程和STL的书,我不是高手,所以也说的不是很全。不过等你到了一定程度,自己就会了解并会选择自己要读哪些书了

2、要对WINDOWS系统编程有一定了解,这方面主要是指了解WINAPI编程,以及WINDOWS一些底层机制,如消息、线程、进程、线程同步等一些知识,这个方面的经典书籍有《windows 核心编程》,《programming  windows》等,还有MSDN是关于WINAPI最权威的帮助。还更多的东西请自己再去找。

3、就是更深地了解VC开发环境和MFC库,这个的好书也很多,不过这方面是我的弱点,知道的书有:《VC++ 技术内幕》,《深入浅出MFC》。再说一下,学vc必然会用到MFC,但是你不一定要精通MFC,有时候有的人只要会用就可以了

4、专业知识,譬如你做数据库方面的开发,那你就要有数据库系统的知识;如果做通信,那你就要了解通信协议。这些专业知识都有一些流行的开发接口,如ADO(数据库),SOCKET(网络通信)。专业知识与VC本身并没有必然联系,这些事你做软件开发所必需的。

以上仅为个人看法,不是定律,不是真理,仅供参考。

怎样学习VC? 作者 张振宇 2001/03/08

现在,越来越多的人开始学习VC了,如果能精通VC,就象精通了九阴真经一样,可以天下无敌
了。我想很多VC爱好者都有这种追求武学至高境界的心理。
我就是抱着这种心理开始学习VC了,至今已近三年了,其间经历过无数的困惑和磨难.....
可是我最终没有放弃,到如今已经有一定的功力 :)
以下就把我修炼中获得的经验与大家分享 ,一起提升修行!
首先要搞清楚VC能干什么.很多人只是听说VC是最好的开发语言,便去学习,就象大家听说辟邪
剑谱厉害,便都去抢着学一样,都是很盲目的。其实语言并没有好坏之分,我在用C之前,一直
觉的BASIC 是最好用的语言。现在在WINDOWS平台下编程,VB和DELPHI可以满足大多数的应用
,而且速度不会很慢。使用VC主要是用来开发系统软件和大型工具软件以及开发游戏。

现在比较流行的操作系统主要是WINDOWS系列和UNIX系列。这些操作系统都是复杂的多任务系统
,在设计操作系统的时候就提供了一大堆应用编程接口(API,通常是C语言的函数),编程者
使用C语言调用这些API便可以开发该系统下的应用程序了。 这与DOS时代的 编程接口是不一样
的,那时侯的函数库是由开发环境提供的(如Turbo C) ,不具有很好的封装性和设备无关性。

每当新版的WINDOWS操作系统发行,便会提供一个相应的plantform SDK(软件开发包),开发者
可以用SDK 编译C程序。在没有VC和VB的时候,WINDOWS程序就是用SDK编出来的。

VC跟这些乱七八糟的东西有什么关系呢?

其实VC的核心就是MFC,MFC是个C++类库,就象结构化程序设计时代的C语言函数库一样 ,
给程序员提供了丰富的编程接口,简化了程序的设计。 而MFC就是直接把WINDOWS的C语言编程接
口API函数用C++的类封装而成! 这样既实现了面向对象的编程思想,又直接使用了WINDOWS的原
始编程接口,代码的效率是 最高的!

当然很多人不适应C++的编程方法,他们依然使用C语言编写WinMain()和窗口 过程,
VC同样为他们提供了很大的便利,因为VC可以很方便的管理资源和代码!

明白了以上关系,学习VC的步骤应该也明确了:首先要学习C语言(如果你还不会的话)!
这是非常重要的。如果C语言不懂的话,一切都无从谈起。懂了C语言,你就可以研究
WINDOWS系统的工作原理和WINDOWS应用程序的工作原理了。这也非常重要。VC只能用来
开发WINDOWS系列操作系统下的应用程序,如果不懂WINDOWS下的程序的工作原理就去写WINDOWS
程序,那也是比较盲目的。主要是体会一下WINDOWS的多任务和消息驱动机制。
然后就可以使用API编程了。这个过程是比较痛苦的,因为一切都变的复杂起来,你会遇到很多
新的方法和概念!比如消息队列,消息发送,窗口过程,GDI,设备上下文,句柄,线程,
消息循环,绘图对象......当你可以熟练的使用C语言进行WINDOWS程序设计了,你可以尝试
面向对象的方法了。

这时你需要学习C++语言(最好是ANSI C++),这不是浅尝则止,你要深入的理解C++语言的
精髓!经过一定的努力,你可以用面向对象的思想去考虑问题了,这时一切都水道渠成,你可以
很自然的使用MFC来编程了,有时你觉的MFC的类不好用,你可以从头作自己的类,而不去继承
MFC!

 

VC++深入详解(孙鑫著)之MFC读书笔记一.2017.12.15

第一、创建一个窗口的Win32程序的7个步骤: 1、编写WinMain函数,可以在MSDN上查找和复制; 2、设计窗口类WNDCLASS; 3、注册窗口类; 4、创建窗口类; 5、显示并更新...

VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径

VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径 说明 $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性...

【C++_一点用法】VC访问Access数据库

开始写写博客,做做笔记,学习学习。 C++遇上Access,Mark一下! #include "stdafx.h" #include #import "c:\program files\comm...

win7 64位 VC++6.0 不能调试 解决办法

win7 64位VC++6.0调试代码无法关闭窗口解决方法 VC6在64位Windows7下调试的时候,再结束调试,程序无法退出。 问题描述:当我击F5开始一个项目的调试时,程序在我设置的断点处停...

VC++ USB接口程序函数

在应用程序一个文档内引用头文件如下,并将hidsdi,hidpi.h,hidusage.h,hidsdi.lib,setupapi.lib拷贝进工程文件夹下  extern "C" { // Dec...

VC环境下的多线程API

第一篇:VC 多线程编程 --转载自:Virtual Me的新浪博客,http://blog.sina.com.cn/s/blog_467338ba0100008a.html   一...

vc++与MySQL数据库的连接

1.MySQL数据库的安装  你可以从MySQL的官网上或者从如下地址下载MySQL的数据库安装包(http://download.csdn.net/detail/nuptboyzhb/461984...

一篇介绍VC开发OCX的文章,写得太棒了!!!

VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx...

VC使用API和发送键盘消息模拟键盘(组合键)消息

Windows大行其道的今天,其界面的操作方式早已被广大用户认可。Windows应用程序大多数都是基于窗体的程序,在大多数情况下,这些程序接收用户输入分为两种:键盘输入和鼠标输入。有时,对于繁杂的,或...

vc2010使用google V8 引擎编译开发若干问题解决办法

项目需求:         开发一款能够支持脚本语言的工业设备测试软件         开发环境: VS2010         开发系统: WINDOWS XP S3 Google V8 引擎的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vc
举报原因:
原因补充:

(最多只允许输入30个字)