VC到底有什么用??学了2个星期觉得VC不好

iamlinjian 2004-05-03 10:33:36
你说说嘛,那个框架有什么用?我有很多东西是不要的他偏要加上去!结果搞得代码成堆运行到那里都找不到,还是VB好啊,想要菜单就菜单想不要就不要,还有那些函数不知怎么搞的,老是说这个找不到哪个没定义,连MessageBox()这样的函数都出错,还有大小写都要严格规定!靠!!输入程序时烦。。。烦。。。烦。。。我还不如吹吹凉风,赏赏秋月舒服。
感觉VC的代码就是一堆垃圾这里放一点那里放一点,简单问题复杂化,条理极其混乱,故弄玄虚。
所以VC是套在程序员身上的枷锁,是扼杀程序员创造性的工具。决定放弃VC
————这就是我学习VC两周后的体会!
...全文
401 46 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiwangstar 2004-06-12
  • 打赏
  • 举报
回复
客观的说,MFC类库确实有很多不尽合理,徒增开发复杂性的地方.这方面的例子随便都可以举出一大堆:

1.大量的宏,(宏最初是为了节省内存空间而设计的,C++可以完全舍弃宏,并且C++标准建议不使用宏).

2.大量的全局函数,破坏了类的封装.

3.关于消息的处理.MFC采用了宏映射展开的方式.第一,破坏了类的封装,因为在MFC中消息并不是类的一部份,(OO理论中,事件是类的成员之一)第二,采用了宏!(并且在MFC中无法在类中为本类的一个成员添加消息处理函数,除非继承!!(除了WM_COMMAND).

4.大量的不符合C++标准的不规则用法.初学往往要为了一个奇怪的用法而常常搜索MSDN.(大大增加了初学的难度)

5.类库中真正有用的东西不多,无用的类一大堆.MFC类库也不能说小,但开发时真正有用,好用的又有多少.而基本无用或不常用的一大堆.

5.类库的架构设计不尽合理.MFC类库结构层次很浅,很简单,而不是像.NET,JAVA,VCL那样,类的层次分的很细化. MFC的这种设计就带来问题.最简单的MFC中没有Control类,有CWnd类,而所有的控件都是从CWnd类中继承的,而且把几乎所有API中的窗口函数都封装到了CWnd中,导致类很臃肿,难用.的确,所有的控件,从根本上来讲,都是一个Window而已,可是在抽像层次上,面向应用的层次上,就不应该再这样做.这样做的直接后果是,导致设计出来的类很难用.在使用CWnd时,我并没有体会到面向对象编程带来的好处.我已经是在面向对象编程了吗?在使用Cwnd时,我常常怀疑. 更多的时候,我宁愿CreateWindow都不愿意new CWnd();

6.类设计的一条原则是给使用类的客户提供抽像,把类内部的复杂工作隐藏起来,尽理减少使用类的客户的负担.但MFC呢,还是以CWnd为例,它所做的仅仅是把Handle做为成员保护起来,类的成员函数几乎就是对API的原封不动的调用,唯一区别就是没有了Handle参数,因为Handle就是自身.(这也叫封装??)

7.C++中提供了不同于C的异常处理方式,即结构化处理方式,try{..}cathc{..}.这种方式比起传统的方式来有很多优点.(最明显的就是可读性)可不知道为什么,MFC这种C++的类库几乎从不使用Exception而是采用

if(..)
return false;
if(..)
..
这样的方式.我曾经同一个搞多年VC++开发的朋友讨论过这个问题,他说:据说,最初MFC设计时也是采用try catch方式的,但捕获不到异常,后来干脆不用了.至于究竟为什么,恐怕只有问MS.:)

8.构造一个对象要分两步.MFC中构造一个对象要分两步走.问MS,MS解释说:一是为了效率,二是为了便于发现错误.(众多的各种语言类库中,恐怕仅此MFC一家有这种特色).

9.关于文档---视模型.(这个恐怕也不能算缺点)MFC中提供了文档---视模型,这当然是为了方便程序开发,而提供的架构.可这种东西究竟有多大用处?在MFC中常常是:不需要的东西,它帮你作了一大堆,还要手动的去删除.而你需要的,做起来又很麻烦.

10...好多通常认为MFC的优点,其实认真想想,也算不上什么优点..像任何时候直接调用API,这个,DELPHI也可以,甚至PYTHON都可以.再说,要灵活性,要直接用API,我干嘛不用SDK.

11..太多,懒的说了..

认真想想,编程工具,我用的最多的还是VC++,再也就是C#.本不应非议MFC的,并且也没有资历对MFC这样庞大的架构做评价.但我的观点是从用户的角度出发的.用户应该有权利对产品的优劣做评价吧?

其实对MFC持批评之词的,国外有很多.像Charles Petzold(获过WINDOWS先锋奖的那位,他的WINDOWS程序设计一书,想必学过C SDK的都读过吧:))就说过:我从来就不用MFC,从它一出现开始,我就认为它设计拙劣...(出自他著的<<C# WINDOWS程序设计>>).还有太多...

C++是面向对象编程语言.面向对象编程语言的程序基石是---类.程序是由一个一个的类组成的.类和类之间用消息进行通讯.可是在用C++开发软件时,常常会很尴尬,用什么类库呢? STL,很好.可是STL范围太小,GUI,GDI,数据库,套接字,都没有.VCL? 设计的不错,可用的人太少..底层又是PASCLA实现的,又不稳定.Qt?设计不错.可WINDOWS平台上又有几个人在用??MFC?,大多数时候,正像上面的朋友说的那样,仅仅是用了那么几个框架,大部分代码还是用C调用API,这是在面向对象编程吗??既然这样,那还不如脆用C调用API,也省的搞个面向对象编程的形式,程序搞的这么麻烦. C++实在是太缺少一套像C#,或JAVA那样的全面,清晰,统一的类库了.(不过,MS已经打出了.NET,这个问题好像已不重要了)


























haiwangstar 2004-06-12
  • 打赏
  • 举报
回复
当然,把VC++做为一个纯C/C++(不用MFC,只用STL,WIN32 API)的编译器还是不错的.所以,如果说VC不好.也是不确切的.:)
zhangnanonnet 2004-06-11
  • 打赏
  • 举报
回复
我觉得楼主的VB水平也就是学了2周。。嘿嘿,和我一样。。。记得4年前毕业前为了赶一个小课题匆忙学VB。。。才一周时间居然搞出来了。。那是的心情。。。就觉得VB真简单。。后来才知道。。我作的东西简直就是垃圾。
YuChangJian 2004-06-10
  • 打赏
  • 举报
回复
哈哈哈,借用《深入浅出MFC》中的一句话:“莫在浮沙之上筑高台”
:-)
ggw 2004-06-10
  • 打赏
  • 举报
回复
几千人年搞的东西你一下就会了?
wolaiye3 2004-06-10
  • 打赏
  • 举报
回复
搞编程还怕写代码那成,赶问你VB编了多少程序!
你男哥 2004-06-10
  • 打赏
  • 举报
回复
复杂的过程,结果才是高效的
megavolt 2004-06-10
  • 打赏
  • 举报
回复
不管什么东东,能解决问题就是好东东。
如果楼主用其他的工具也很好地解决了问题,
那也没有必要非要学VC,
偶觉得不学VC不代表自己不行,
学了VC也不表示自己很行。
luolovegui 2004-06-10
  • 打赏
  • 举报
回复
楼主的天份不够.
楼主你还学什么程序喽,不用学了,你以为你两周就可以学得出一点东东吗,要相信,坚持就是胜利。
再说一句,学两年之后你就可以知道VC有什么用了。
赖勇浩 2004-06-10
  • 打赏
  • 举报
回复
楼主的天份不够.
自由的风 2004-06-10
  • 打赏
  • 举报
回复
这种帖你都敢在这里发.....................
我对你的景仰有如滔滔江水,连绵不绝.....................
XmagicX 2004-06-10
  • 打赏
  • 举报
回复
这话都敢说……
craftyfox 2004-06-10
  • 打赏
  • 举报
回复
是你没有学好, 不要说VC不好,要不你给人的感觉那就是2个字-愚蠢
peggyxia 2004-06-10
  • 打赏
  • 举报
回复
楼主如果面向对象不过关,还是不要学习vc了,个人觉得如果面向对象和c++不过关,学习VC是一件极其极其痛苦的事情.可惜当年没有体会到这个,后来恶补了一阵,觉得vc也不是很困难
fanoble 2004-05-07
  • 打赏
  • 举报
回复
很好,找到楼主找到自己的方向了!
mengjj 2004-05-07
  • 打赏
  • 举报
回复
開發一般的應用軟件用VB和delphi確實很快的
mjk 2004-05-07
  • 打赏
  • 举报
回复
学习VC可以读别人的代码库,可以建立自己的代码库,时间越长,你开发的速度就会越快
winforever 2004-05-07
  • 打赏
  • 举报
回复
可以根据需要来学嘛。VB有VB的好,VC更有VC的好。不要一杆子打倒,主要根据你所做的项目的需要来决定用什么。
abrams2004 2004-05-07
  • 打赏
  • 举报
回复
《深入浅出MFC》
philis 2004-05-07
  • 打赏
  • 举报
回复
楼主来散分的吧,2周学成楼主这样,已经不错了。想当初真是苦不堪言,挺过来了,就好了。VC的学习曲线是先平,后陡的。就是入门难,但是入门以后,就会突飞猛进。
加载更多回复(26)

1,658

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧