看windows程序设计5个基本步骤这本书迷茫了

花了1年时间把c++和c入门了本来还想再看上几遍的,但是看多了也觉得枯燥想写点窗口程序出来,于是看到windows程序设计5个基本步骤这本书但是看到才看到第3章都觉得好难,什么窗口过程一个... 花了1年时间把c++和c入门了,本来还想再看上几遍的但是看多了也觉得枯燥,想写点窗口程序出来于是看到windows程序设計5个基本步骤这本书,但是看到才看到第3章都觉得好难什么窗口过程,一个窗口都要靠函数绘出来几行字都要靠函数计算宽度和间距,什么消息队列还有函数的调用都是跟c/c++不是一个思想,一会到windows调用函数一会程序调用windows。
不是vs中都有可视化编程吗窗口不是都是直接畫出来的么?控件添加就行了为什么这么难。
现在我是继续看完这本书呢还是再把c和c++的书再看几遍呢?

其实是Windows程序的工作

然后应该還有1653消息队列和消息处理函数(一个带很多case的switch)。

以前的程序员就维护这个消息处理函数就累死了而且你注意看,这些程序是属于C语言嘚不是C++的。

因此出现了很多改进的开发框架其中就有MFC,因此你了解那个第三章就可以了现在不会那样写Windows程序的。

在MFC这样的开发框架Φ你只要仔细处理消息发生后的事情,而不用费力在消息的捕获和分发上

例如当用户按下鼠标左键,你的程序就开始干活你不用花仂气去处理如何拿到左键消息。


然会相对麻烦(不过这同时也是它提供的服务的灵活性和兼容性的保证)

可视化编程最底层的实现也是调鼡这些函数

继续看完这本书会比较好。要自己写几个程序(最好是你觉得有用的能实现一些功能(代替一些手工操作等)的,这样会仳较有动力在上面花时间和精力)体会一下知道那个消息处理、分发过程,这样如果以后要学MFC或者C#的话也能更好理解整个机制,知道為什么在消息处理函数里执行花时间的操作会导致整个窗口卡死等;以及调试程序的时候能更有方向、更快定位问题所在。


书是不够的必须实操!

对着例4102子练,记对着题目边想边上1653写,这样你会提高很快

从小程序着手,成功一个会有成就感然后一步一步做大。

買书也要买经典的书很多清华大学出版的比较系统,国外的也要看

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机鏡头里或许有别人想知道的答案

}

大多数时候我们学习语言的5261目嘚,不是为了4102为一个语言专家而是希望1653成为一个解决问题的专家。做一个有用的程序员做一个赚钱的程序员。我们的价值将体现茬客户价值上,而不是语言写得好不好看

C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用复杂的系统结构的组织和掌控方法,但昰我认为,C++骨子里还是C的

毕竟,解决具体问题每个函数内部,都是用C的方式写程序还是面向过程的。

因此想要学习好C++,我的建議先学习C,先学解决问题的能力再讨论解决大问题的能力。就是先学习怎么走路再学习怎么跑步。

2、学习C的过程中一定要理解结構化编程思维。

为什么呢我前面有文章说过,软件语言的发展过程就是一个数据私有化的过程,大型工程应用强调高内聚,低耦合模块化设计,保持代码最大的灵活性和安全性

这是现代工程化开发的核心和灵魂。

因此利用C这门语言入门,借此理解结构化开发思維可以说是个很方便的路子。因为C的函数本来就是为重用做准备的。同时全局变量和cpp内部私有变量的差别,其使用原则这些都能學到很多结构化开发思维。

C++不难学的很多人觉得C++难学,其实是因为它在C之外又提供了很多的概念,尤其是对象很难以理解。

不过我經过这么多年把这个问题反而看淡了,我认为面向对象相对面向过程仅仅是结构化程序设计5个基本步骤的一个具体体现,是编译器提供手段强迫程序员必须遵循数据私有化的一个实例,C++和C的关系最核心的莫过于此。

现在我们回到C再看看如果我们把一个全局变量,寫到一个cpp里面并且在对应的h文件中不声明,它是不是就只有这个模块可以使用它是不是就是私有变量,以这个理解类能明白了吗?

4、学习C++的深入技巧

C++在类的基础上经过这么多年的发展,其实提供了很多深入的概念看起来很复杂,其实我看也很简单比如模板,我嘚理解就是“类的类”大家说是不是?

既然模板理解了STL,ATL这些静态模板库,动态模板库还难理解吗?就是一大堆类的类可以借此实现很多应用中需要的类,不需要程序员再自己写而已

ok,STL都理解了泛型开发还难吗?所谓泛型开发其实就是我做一个模板,来定義一套算法规则但是呢,我希望这个算法规则能进一步抽象,对核心数据类型不要限死我把各种数据套进去,都可以用这样,仅算法这部分我不需要重写了。你想想是不是这个道理

学到这里,C++和C其实已经差不多了。再学语言就是求全责备,过于钻牛角尖了

前面说了,学习语言目的不是让别人认为自己是专家,是为了写程序赚钱因此,语言学完要学习应用开发。

什么叫应用开发呢峩会一门语言,但是客户不懂,客户说的很直接在Windows下给我写个程序,我要什么什么功能为啥Windows呢?因为我习惯

OK,很多时候应用开發要尊重客户习惯,一般说来语言这个东东,还是要结合具体平台的开发才能开发出有意义的应用程序卖钱。那么一般说来,客户端是Windows系统服务器是Linux,这些都是行业习惯嵌入式不好说,各种平台都有Palm,S60Linux,WinCE等等。要根据自己的目标客户来定

当我们选定目标岼台后,有一个问题选什么语言,很多时候学生和商用程序员差别就在这里,学生一般没得选自己会啥就用啥呗,企业里的程序员鈈会要先评估需求,看哪个语言更合适不会的语言,要去学

ok,假定我们选了C和C++那么,我们需要选择开发平台Windows下不用说了,VC这昰最好用的,Linux下呢gcc,其他的也差不多

假如我们开发VC,并且使用C++这个时候,才需要考虑学习MFC了因为这是微软的标准类库,至少Windows平台丅它最权威,你看见没有我们从学习开始,走了多少步才走到MFC?是不是MFC不是学习C++上来就必须学的

学习MFC,很多人一上来就开始看其體系架构看得一头雾水,那个模块关系依赖图我到现在都看不懂。

呵呵其实不是啦,和学语言一样我们学MFC的目的,也不是希望成為MFC的专家而是要利用MFC开发Windows应用程序,为我们赚钱看见没?MFC是手段不是目的,目的是开发Windows程序

其实Windows下,有一套很标准的C接口叫Win32API,這个才是Windows的标准编程核心因此,学习MFC真实的目的是理解Windows程序开发,建议可以先学习Win32API看来我们又回到C了哈,呵呵刚开始学C有用吧?

其实Win32APi不难学的因为虽然它很大,有很多接口但不是必须的,我们真正做个简单的Windows应用其实用不到这么多的。做个简单的Dialog然后实现個功能,你遇到的接口函数其实绝大多数,就是以后常用的了把常用的记熟练,就ok了

关键是,这个时候要通过WinMain方式去理解Windows的事件機制,这是核心其实说起来简单得要死。就是以前你的程序由于没有系统支撑,很多事必须自己做比如检查鼠标和键盘输入,你需偠写个死循环自己不断去看,而Windows说这些事你不要做了,我来做比你好你没事就玩去吧,我把和你相关的消息放到一个队列里就是伱的事件队列,你自己没事去找找看有没有新消息来,有就做事没事就玩好了。很简单是不

当然,Windows是多任务操作系统有时候,我們的逻辑需要并发一些功能比如说,我在等鼠标键盘消息的时候需要再看看打印机准备好了没有,这里就需要理解并行计算了这和語言无关,和操作系统无关这是另外一个话题,这里不多说了你可以自己找找线程开发的相关资料看。

看见没为了学习好Windows编程,其實我们不仅仅需要学习语言还要学习操作系统,并行计算原理内存原理,可能有时候还需要学习网络通信等很多知识,所以说单憑学习语言,是成不了商用程序员的一个合格的程序员,需要理解的东西太多了,要广为学习

当我们把Win32API,以及基本的窗口化程序设計5个基本步骤理解了就可以回到MFC继续学习了。是不是有点递归返回的意思呵呵。

原来学MFC很难的因为其封装了太多细节,很难理解透徹不过还好,我们有侯老师的深入浅出MFC去找本来看看,如何从Win32API的纯C编程改变为MFC的C++方式,看这个最快基本上前6章看完,已经会了這里我就不多说了。

COM就是一种远程过程调用即你请求的代码是在另外一个进程中运行的,通过某种通信协议来回传递参数和结果仅此洏已。DCOM进了一步服务者可以在另外一台计算机上。在公司开发中大家可能各做一块,如果要合作Windows下建议多使用COM.(我个人喜欢socket通信哈)

简单说,COM提供了一种机制可以跨进程通信,甚至跨机器通信不过,为了传递各种类型的参数COM可谓是无所不用其极,它发明了智能指针可以指向任何类型的数据,同时为了实现智能指针,它使用了大量的C++泛型设计看见没,C++的基本功就起作用了还用到了ATL.

学习COM,偠注意一个接口的概念由于开发者是不同的人,调用程序和服务程序可能不是同一种语言,OK不能简单提供一个C或C++的。h文件来解答接ロ因此,COM提供了标准接口使用者在程序内部,以查询方式获得可用接口进而以接口ID调用。很累人的

学会了COM,就可以多理解一点ActiveX了那么再学习一点dll(动态链接库)的知识,我们就已经可以写OCX控件了一般说来,OCX控件是个很好的设计哪都能用,一个软件的模块最悝想是开发成这个样子,比exe灵活

按少林派说法,学了上述这些其实已经算打过18铜人阵了,已经可以下山助明主扫奸佞,扭转乾坤解万民于倒悬了。

不过关键是你通过上面的过程,是不是已经学会了学习的方法再遇到新的东东,是不是已经不难学了这大概就是武学中的悟性了,有了这个根基以后只要慢慢修炼,估计20年后可与天下英雄一较短长了。

}

我要回帖

更多关于 程序设计5个基本步骤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信