Vc6.0学习手记(50分)

  • 主题发起人 fengxiaoxiao
  • 开始时间
至今VC++未进门,,,痛苦。。。。
 
我想学好vc应从以下三个方向着手:
1. Windows工作原理(如上所示),mfc类的划分等等基础知识。
2. Vc的操作:如何在工程中增加一个类,如何增加代码,如何管理资源等。
3. 程序的调试。
仗着delphi的一些基础,直接跳到第二步,作一个椭圆按纽试一试vc的操作:
加入CellepticalButton类,使用insert files to projects分别加到.h和.cpp文件夹中,却发现没
有相应的remove选项。Vc6.0竟然没有remove from projects选项,不知为何。
看到ellepticalbutton.h和ellepticalbutton.cpp,知道这是那个椭圆按纽的类,便通过“工程|
添加工程|files”将这两个文件加入到当前工程中。在当前工程中的对话框类的.h文件中加入
包含语句”#include ellepticalbutton.h”,加入成员变量CellepticalButton m_Button1。好,然后在
此对话框类的函数DoDataExchange(CdataExchange* pDX)中将此成员变量和对话框中的控
件建立联系。
编译:出现8个错误,其中一个是m_Button1未定义。
我已经看见此变量已被定义了,却不知vc为何没有看见。
我只好在例程中反复对照,最后找到了不同。例程中使用的文件名是”A01erb.cpp”
和”A01.erb.h”,于是用这两个文件换掉ellepticalbutton.h和ellepticalbutton.cpp,重新编译,
竟然通过。屏幕上出现了椭圆按纽,真椭真圆。
难道vc对长文件名的支持就是这样?
请教高手,DoDataExchang函数作用是什麽?vc说// NOTE: the ClassWizard will add DDX and
DDV calls here ;我在classwizard中不知如何添加,只好用键盘敲代码,好在可以运行。
通过这个例子,我发现vc需要这样一个过程:将声明的变量和控件建立联系(也就是用
DoDataExchang函数完成),而delphi好象不用这样,声明的变量直接使用就可以了。我想
这可能是vc和delphi对问题处理的角度不同造成的(希望高手能讲一讲)。
感觉vc和windows结合的十分紧密,许多操作和使用windows一样。
顺便问一下,如何改变控件的颜色。我没找到。
2001/12/13
 
vc帮助是不是不太好?
我编控制台程序,用string,明明能查看到有这个类型,就是说类型未定义,按f1,没有说
该包含哪个头文件。
我说一句,c++是声明式语言,所以有.h和.cpp文件,delphi的use ..起差不多的作用。
 
今天试的是动画按纽。
同上例,将长文件名改短,加入到工程中。在对话框类的声明文件中加入包含动
画按纽的声明文件,声明动画按纽的变量,在DoDataExchange函数中将变量名和
控件联系起来。在对话框类的初始化函数中,加入动画按纽的代码:
m_btn.open(“filename”)和m_btn.play()。编译,程序运行正常,显示一动画
按纽。
使用vc的控件的操作基本如此。只是不清楚这个和控件建立联系的理论上的知识
,希望高手能够指点一二。
在有人指点的情况下,vc的操作并不复杂,只是要知道为何如此操作就必须十分
了解windows了,这不是一天两天的工夫了。
2001/12/14
 
to littertiger:
我想应该是未包含系统提供的某些库文件,如:string.h.
 
看看下面的文章吧,再来论讨你们的是学VC好呢还是学DELPHI好,这个只是想大家都清楚
一下我们和国外的差距和不足,再想想WTO会给我们带来什么啊!?
国内不谈java--会有千万人跳出来和你争嘴的。越是如此,我越是不忍心不说出来,越是不不忍心看到在这个领域被国外的同行越拉越远--在硅谷的感受。
  我是96年毕业的,正值java刚出,火气冲天之时。我当时是一名C++的狂热者,有着3年的C++经验。接触java也仅仅是在作毕业设计的时候用过,对java也算是有了基本了解,那时的java才jdk1.0,烂的很,连些基本功能都没有,和大家一样,对java根本就不认可。作完了设计之后,就把java扔到一边去了。自认为C++不错,还是干自己的老本行吧。毕业时我认为精通C++,并且有java的基础,算是身怀两种绝技了,在国内的IT(那时还不叫IT)还可以混个明堂出来吧。
  怀着对未来美好的憧憬和对C++的无限的崇拜,我出来闯荡了。唉--出去的情况于我的想法完全两样,delphi,VB漫天飞,C++高不可攀,根本无用武之地。我大失所望,可我偏偏又是一个C++偏执狂,要我去改学其它语言,在我看来简直是对C++的侮辱,也是对我信念的侮辱,是绝对不可能的!对国内失望之余
,于是我想到IT技术前沿的美国,于是满怀希望来到到了IT精英汇集的地方--硅谷。我想这下总算可以施展我深藏多年的C++才华了吧。我--再一次的错了--在硅谷,VB,delphi根本不入流,虽然C++还继续再用,
但是已经是大不如以前了,不过有c++背景的找工作要相对容易些。这里,程序员们,大小的managers,chargers只对Java感兴趣。 没想到,万万没想到。--这里反微软的气氛很浓,也许是Sun,Oracle,IBM,AOL等巨头公司的大本营在此的缘由吧。呆过一段时间后,我发现这里只要是稍大一点的公司,都在同时在维护着几套System,要一劳永逸的解决这些问题,让这些System无缝的衔接起来,java是最好的不过的解决方案。
在这里,个大巨头公司们对java几乎在玩命似的疯狂:ibm在全球16个java实验室24小时续以奋战,扛着“java就是一切”的大旗,投入java的钱不比sun的少;intel整装待发,全力以赴赶制java芯片,以求在java谋得一席之地;oracle,Sybase,informix,DB2这些王牌数据库厂商更是纷纷下马,把java绑定到自己的产品中,提供对java最全面,最直接的支持;Inprise,BEA,Iona,netscape联盟等一大批系统集成、支援厂商,也不甘落后,争先恐后的开发自己的java工具、应用服务软件,目的只有一个,让自己的产品带上一个响亮的"J"字;
cisco,3Com,HP,NEC等一大批网络设备供应商对embed java表现了浓厚的兴趣,一批又一批的带java接口的智能设备相续涌现出来,在这个市场上的竞争异常激烈,谁也不敢怠慢;sun自己就更不用说了,sun创造了java,但java并非sun的专有,来自巨头们的竞争,也让sun感到了前所未有的压力,在“捍卫java,保卫java,发展java”的方针下,带领巨头们发布了面向不同领域的各个版本:面向PC领域的java2 Standard Edition,面向企业级计算的Java 2 Enterprise Edition,面向嵌入式系统的Java2 Embedded Edition, 面向智能终端的Personal Java Edition。
  在这样的一种趋势下,迫不得已,只有放下曾经让我无限自豪、热情彭湃的C++--我心爱的C++!
一边,在国内,是还达不到使用C++这样的高度;另一边,在硅谷,C++已经丧失了昔日的辉煌。感叹万余,痛定思痛--随即,以着极大的热情投入到java的事业中,幸好有着C++的功底和以前对java的基本接触,java很快就上手,来到了java世界里,啊,原来java还可以这么用,这是以前根本没想到的,以前一直以为自己是个oop行家,这才发现跟java比,简直就是小巫见大巫--oop在java中被运用的炉火纯青,java本是是一个开放的体系,各家厂商都可以对她扩展、实现,要维护整个java世界的纯洁,他们采用了一种绝妙的方法,运用java的10027757776414op特点,对于规范的定义只是一些接口,而这些接口的实现,则完全由各个厂家去负责,多么的和谐,多么的完美!理解不了这些,你就根本无法理解象EJB,Servlet/JSP,JTA、RMI/IIOP、JNDI,JMS,Jini....这些java新秀的威力,稍大一点的公司(除了Microsoft),无一不对她趋之若宠,源源不断的
钱财、人力往这里白扔也值。这仅仅只是个j2ee,也是到目前为止,业界中最为完美的企业解决方案,就更不用说j2me了,想做下一代internet接入设备,除了j2me可以说是别无选择,更要命的是她完全可以与现有系统紧密的衔接起来......
  ......
  --我并非是想把C++说得一无是处,我本人对C++仍然是有着无比的崇拜,只是每把刀都有每把刀的用处,在系统、支撑软件领域,C++还是老大,只是不要把这种老大的思想随处烂放。在应用领域现在是java,不管你承认也好,否认也罢,辛辛苦苦用C++写的一套Solution才买10万还不到,而java轻松就完成的Solution可以卖到几百万,这就是区别;同样,如果仅仅把java当作applet,application用在桌面环境中,她的的确确又比任何一种语言都烂。
  我所说的只是国内的环境影响着我们每一个人,当java one 2000在美国红红火火的举行,多达4万家公司挤进会场,更是有3000余名专家、学者在会上慷慨陈辞时,而国内还是不以为然,守着以前的老家当,倒是精明的日本人,早就预定了数十个座位;当个大公司在java的领域里进行惨烈争夺的时候,国内还抱着VB,Delphi 枕着C++睡大觉。
  “java?--不过是个玩具儿”,朋友、兄弟--我真的再也不想听到这样的话了,也许你说这话的时候,有一丝的快感,但是你应该知道,在你笑得时候,人家国外的同行比你笑得更开心,他们是何等的希望我们永远都把她当作玩具!
  我真的希望国内的朋友们,到网上去看一看,到国外的公司去看一看,不要被国内的氛围、环境所左右。
我不想再说了,我实在是不忍心看到在这个领域里,被国外的同行越拉越远!--事实上是已经被远远的
拉在后面!
    我想大家看了上面的文章后,是不是会觉得一些又被外国佬欺在国人头上的感觉啊!
如果有的话。就请不要再讨论这些无用的问题了,还是抓紧时间学吧和讨论点有用的话题
吧!
 
再来看一下下面的文章,这是JAVA开发者上转贴的。你们就会对JAVA的前景更加有所了解了!
java学习体悟 作者: huli·yesky
  java 出现在我们眼前,时间还很短,当他还只是一个半成品的时候,我们就被告知,java将成为软件发展的规范和希望. 然后,java出现了,jdk的出现,我们发现其实java并不习惯,因为我们已经适应了window下的visual编程,对于jdk这种编程方法已经很不喜欢,即使visual j++的出现,所增加的还不过是一个编辑环境.而且大家所熟悉的visual j++所支持的功能很少,可以说除了支持ActiveX之外,就是很纯粹的jdk1.1.这样的环境和功能,是根本不适合开发大型软件的所以,随着visual j++的兴起,java applet仿佛成为java唯一的功能了,几乎所有介绍java的书籍,网站,都被javaapplet充斥在许多人眼中,小应用程序是java唯一能做的事情了.可能还不如javascrip好用,当年如同耶稣降临似的java,仿佛成了鸡肋.用处的确不大.
  但我初次接触java,我就被java 面向对象的思想,舒服的代码形式所吸引,对于面向对象的编程,大家都已经耳熟能详,c++好像成为面向对象的标准语言,而且delphi,vb,pb好像都挂上了面向对象的边了.但在我看来,delphi在设计上完全的面向对象,而且在他的内部,他很好的处理了对象之间的关系,但是在大家使用delphi的编程过程中,可以说已经被borland公司的对象束缚,例如面向对象有个很重要的应用,就是内部操作和外部界面的分离,也就是数据和界面的分离,但是使用过delphi的人都知道,这个在delphi中是很难的,因为你对界面的直接操作就直接写到了界面对象相应的操作中.很多人问我,为什么VC中为什么要初始化成一个Doc类,一个View类呢?我想,这就是没有理解面向对象的思想,为什么呢,就是界面实现和数据操作的分离嘛,可是很多人几乎不使用Doc类,把所有的数据操作都写到View中,因为这样免去了在View中操作Doc类的貌似复杂不必要的操作.至于vb,pb,我想大部分人在编程中,实在是很难体会面向对象的.因为这些语言和工具,本来就很不适合来实现对象操作.
  如果你用过smalltalk语言,你会发现,什么是面向对象,所有的语句,甚至赋值,条件等等基本语句都是对象,学习smalltalk语言,很烦,即使你说自己对C++都是非常的熟练精通,为什么呢,因为我们绝大部分人使用C++,都没有真正体会到面向对象,当然在作项目的时候,也很难真正使用面向对象的方法.很希望大家有机会,学习使用一下smalltalk,因为这种语言能真正逼迫你体会面向对象.
  说了这么多面向对象,有点跑题,现在我回到java,为什么我一再的强调面向对象呢,因为smalltalk毕竟不是真正高效率的编程语言,我用过很多编程工具,可以说几乎所有的我都作过东西,但是我看来,只有java的面向对象,编程方法,才是我最喜欢的.使用java编程,你会感觉到什么是对象,感觉到自己编写的程序原来也可以这样的有条理.这样的舒服.我和java斑竹lolo曾经讨论过这个感受,他也很有同样的感受.
  但是,大家或许会说,java很好,但是他能干什么呢? 除了applet他能做什么?对于这个问题,我要告诉大家,他能做的东西很多,java到底能做什么,我使用java时间不是很长,但是我感到高兴的是,在这有限的时间里面,我接触的东西或许已经足够让我对java的前景产生了很大的兴趣和信心。
  如果大家能到Sun公司主页上看看,会发现太多的东西可能是你听都没有听过的,jini,jmx,java3d,servlet,rmi……太多了,如此多的新技术,而且功能都是前所未有,起码是非常不同的。在国外,java程序员已经超过其他语言程序员,其中IBM公司就使用自己开发的visualage for java为法国开发了全国铁路管理系统。这个项目说明了java绝对不是只能开发小东西的,只能是applet,当然java的网络支持或许是所有编程语言中最强的了,他在网络的应用功能远远超过任何语言,大家或许很喜欢而且很熟练CGI的开发,但是servlet的功能却更标准化,使用java会让你感受到舒适。
  jini可能很多人不知道是什么,我也不很清楚,但是自从lolo和我说了jini的思想的时候,我认为他,起码是他的思想绝对将在不远的将来充满我们生活的空间。
  今天我看了一本xml方面的书,再一次感觉到了java的无处不在。xml的思想很新,非常的有发展前途,记得lolo曾经告诉我,xml将会得到极大的发展。我期待这样的一天。
  我的方向是多媒体,所以我对例如3维效果非常感兴趣,以前我只能通过VC,C++ builder来编写出3维图形效果,如果将这种效果放在网上,即编写出支持3D效果的applet却不能,当然也有折中的方法,但那样作出来的效果很不好,也就是不是真正的3D图形,都是线条组成的,没有openGL作出来的那种虚拟效果,不过很快我就发现java突破了这个限制,sun公司的jdk for 3d(opengl)实现了对opengl的支持,作出来的效果虽然还达不到使用VC编写的那样复杂,但是再网上已经是非常难得了。
  前些天我访问www.opengl.org,发现了jausoft公司制作的opengl支持的java类,他已经彻底的实现了几乎所有的opengl功能,但是唯一的缺陷是,他不能真正实现java的跨平台,他需要在机器上预先安装一个解释软件。
  java对于声音,图象的处理,或许还不能达到专业效果,单对于他来说已经是非常不错了。
  今天一个朋友的提醒让我想起来。java语言的跨平台是大家都公认的,但是不知道是否注意到使用java编程,有一个和别的编程语言很不一样的地方。就是虽然都是C++语言,但是VC和C++ builder之间的共享性受到了很大的限制,虽然C++ builder提供从MFC到自身支持的过程,但是具体实现上很难。
  面向对象技术最核心的就是可重用性--reuseable,可是C++,object pascal等等都把这个优势降低了。可是java却做到了这一点,无论你使用jdk,jbuilder,Vj,visualagefor java,你都能做到对象之间的充分共享。甚至你可以在编程的时候,有时候选择这个工具,有时候选择那个工具,但是,这一切自由都不妨碍这个软件的整体统一性。如果你觉得Visual j++功能太差,可是jdk的编辑支持又不能忍受,你完全可以将jdk的class让vj来调试编译。你觉得visualagefor java的select控件对数据库的支持很好,你也可以将它导出,让jbuilder来调用,一切太自由了,自由意味着解放,你不必拘束于一种软件,你不必说我不会Visualage
  而只了解jdk,这一切,在java里面都不是问题。java的reuseable,实在是让我高兴。

还有很多文章,请到JAVA开发者的网站上自己看一下去吧。
网址:http://jdeveloper.myrice.com/
好了,我也不想再说什么了,请大家自己想一下下面该怎么办了吧!
 
各人侧重不同。大哥!
 
String
char *MyString;//这里是不一样的.也可以用char []MyString;数组其实就是指针
MyString="OKOKOK";//字符串必须为双引号,字符为单引号
VC只不过是个编译器而已
建议最好先学SDK
再学MFC
其实,MFC也没有什么好学的.关键是记住然后用而已.
 
我是先学 VC,再用 DELPHI 的。我觉得 VC 的 IDE 比 DELPHI 方便多了,帮助详尽,
可以全文搜索。(别砸砖头),
强烈建议加 WholeTomato 的 Visual Assist plusin。M$ 的东东易用性的确不错,刚试了
VS.net ,更是方便多了。
个人体会:
1、先学 C++ 基础知识,可不管 WINDOWS 方面的内容;
2、看书,熟悉 IDE;
3、从 MFC 入手,先绕过 WINDOWS 底层的内容,搞个 HELLO WORLD 之类的玩玩,增强一下信心;
4、搞清楚 MFC 的do
C/VIEW 结构,可写出实用点的软件;
5、最后才是K WINDOWS 方面的底层内容。
总结:
先易后难。先学了 DELPHI 的朋友学 VC 有个误区,一开始就直奔控件编程,用 DELPHI 的
办法学 VC ,肯定觉得难了。初学者可跟帮助中的教程一步步做,可省不少买书钱 :)。
 
我在学delphi/vc++ /asm,要学精,都难。
 
to pluszt:
这里没有讨论语言的优劣,而只是学习vc的体会。重点是如何更好地学习vc,
及在学习的过程中遇到的一些问题。
因为delphi相对熟悉,所以在学习vc的过程中,自然会有些对比。我提出这些
不同,只是想知道是如何造成的?
to smileboy:
vc的可视性绝对不如delphi,甚至vb也只能是平分秋色。至于ide,个人认为
delphi要好的多,可能是从turboc改过来的缘故。
同意几点意见,是对我所说的第一点有力的补充。
其实,我觉得delphi和vc在提倡使用类上是一样的,只是具体操作不同。
借问sdk的分类,主要内容。
 
先学C++,然后才学习VC6,这样就可以很快掌握vc的本质;
 
我最.h的头文件了,从学c的时候就觉得非常讨厌。
c++不把这破东西改了,我是不会去学vc++的.
 
xeen,可是,微软会求你去学么?
 
hehe,所以幸好有别的东西可用啊
 
一个VC++ HELLO WORLD高了一个晚上,不高了,
还是用D,或VB,
 
呵呵,,我的感受也痛苦。搞了这么久连个文件操作也不会。
我只用它修改一下资源
 
先从SDK着手吧!
 
顶部