当前位置:开发平台->Windows ->Windows零基础入门:1.6 Win32 API如何获取和使用

原创版权标志Windows零基础入门:1.6 Win32 API如何获取和使用

作者:codexia  发表时间:2015-7-26  阅读:
[摘要] 本节详细讲解了API如何获取和使用,同时讲解了很多学习方法以及相关思想方面的经验,供大家学会学习方法和思考。讲了Win32 API函数的相关背景知识和理解的内容,对比了C语言的库函数的使用,促使你轻松理解掌握。精彩的就看正文的内容吧。
   前面一些小节,大家看完后,或许还不清楚Win32 API到底如何写程序,或者说,这些所谓的API函数如何去使用呢?去哪去找这些函数呢?我们怎么知道这些函数如何使用呢?
    前面所有内容,都是在给你尽可能的解释各种疑惑,在你完全没有接触到Windows方面的编程,你会Windows等操作系统方面的编程十分陌生。即使很多同学在老师的带领下学完了Windows程序设计,或者看了一些培训机构的视频等,依然对Windows编程似懂非懂,其实是,只知道写点代码,而其他方面,都一无所知。很多课程根本不跟你将太多的为什么,不会追根究底,不会溯源,只讲解了现在应该如何使用而已,稍微好点的就是多讲了一些思想性的东西。而他们的教学重点,往往忽略了技术的发展和技术背景等等,也就导致了现在绝大多数学生一看到技术发展史之类的,技术背景之类的就跳过了。也没有几个人能够认真看过一本书的前沿和版本说明。是不是你也中枪了呢?
    有时候,我们学习太功利了,急于求成,往往直奔主题。然而,不为人知的很多技术要理解的好,与发展有着密切关系。你知道这段技术背景,你也就知道这个技术为什么诞生为什么这么受欢迎,为什么一直使用到现在等等。当然,我会竭尽所能将讲解到的相关必要的背景介绍给大家,而无聊的时间发展这类的就不谈了。我们了解一个技术的发展,不是了解什么时间诞生了什么技术,这个是没有意义的。而教科书最喜欢搞这个发展背景。我们需要了解的发展背景,是这个技术在什么时候因为什么需求或者什么矛盾而产生的。举个例子说,IPv6,这个技术学过网络的人应该都知道。其实这个技术也不难,因为IPv4地址段短了,现在的互联网设备太多了,分配不过来了,因此,就造成了发展障碍。这样就提出了扩展IP地址的长度,这是现在的IPv6。然而扩展长度,不是简单的让IP长度变长那么简单,还涉及到多余的地址段,因为IPv6太长了,目前用不完,因此要合适的分段。还有,现在的普遍使用的是IPv4,也不可能一下子就替换成IPv6,因此就有转换技术,将IPv4和IPv6做地址转换。诸如此类的,各种技术点之间是有相关联系的,如果能够将这些因果发展串在一起,你会觉得这些技术学得很有意思。而课本则是将这些因果关系忽略了,一条条列出这些技术要点,讲出来即可。教学的课本基本都是这个模式,这些细节的东西就依赖老师了,如果老师讲,你就走运,也就学的有兴趣,如果老师不讲,那你就会学的很乏味了,慢慢就讨厌这门课了。实际上,每一门课都会很有意思,而在中国,这些就都靠老师了。然而,在应试教育模式下,可想而知,这些效果如何,我也不多说了。如果效果好,我也不必在此写这个教程了。
    而相对来说,国外的很多经典著作,对每一个技术点的发展都有详细的交待,让我们非常清楚一个技术怎么来的,有什么用,有什么优缺点,并不是罗列出来,而是根据发展的过程讲述,就和讲故事一样。你不仅学的很好,而且学的静静有味。这些也是评判一本书是否适合自学的标准之一了。千万不要将教科书拿出来入门学习,特别是零基础入门。
    好了,上面讲了这些额外的宝贵经验,我们的课程以及我们C++技术网的重点在于教会你如何认知和思考,以及...【登录后阅读更多内容】
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。


  • codexia    2015/7/27 9:03:16回复
    为什么有人踩我呢?哪里不好,请指出来一下哦。谢谢了。

  • oneoften    2015/7/27 16:03:36回复
    请问在《windows程序设计(第五版)》第9.6.7节的HEAD.C 程序中
    在ReadFile(hFile,buffer,MAXREAD,&i,NULL)函数中,这里的i 是int,而程序中要求的是DWORD类型,怎么改?
    另外在DrawTextA(hdc,buffer,i,&rect,DTFLAGS)函数中buffer要求是LPCSTR类型,而这里是static BYTE ,这里怎么改?
    oneoften: 回复 oneoften 说:我用的是vs2010【回复】codexia: 回复 oneoften说:做强制转换即可。&((DWORD)i),实际上这个可以兼容,直接赋值也是可以的,可能有警告。如果你的static BYTE存储的数据是字符串,也只需要强制转换即可。【回复】

  • raychang988    2015/7/29 16:03:27回复
    为什么我弹出的对话框很原始,跟你的不同,没有彩色边界,我用的是VS2012codexia: 回复 raychang988 说:这个是默认跟随系统的样式的。【回复】

  • raychang988    2015/7/29 16:03:55回复
    我知道了,你的是win8???codexia: 回复 raychang988 说:是win10。【回复】

  • 996980215    2015/8/22 23:06:31回复
    我发现可以无限赞......codexia: 回复 996980215 说:嘿嘿。是的。多赞几次咯。攒点人气先。【回复】

  • fute598    2015/11/3 15:10:51回复
    还不错,但是确实要点基础,我用Notepad%2b%2b编写,MinGW编译那个例子,因为编码的问题花了点时间,总算成功运行了codexia: 回复 fute598 说:恩、【回复】

  • wuyuan2011woaini    2016/2/23 8:20:47回复
    2016-02-23

  • wuyuan2011woaini    2016/2/23 8:21:02回复
    2016-02-23

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)