现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

SDK编程:预备知识与概念介绍

2012-08-01 03:40 工业·编程 ⁄ 共 2228字 ⁄ 字号 暂无评论

    大致说来windows编程有两种方法: 1.windwos c方式(SDK), 2.c++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等,如果要深入 下去,还是要熟悉SDK。

    两种方法有哪些区别呢:SDK编程就是直接调用windows的API进行编程,但是有上千个API组成(win95的API有两千多个),这种数目太大了,对于编程显然不利。而MFC把这些API封闭起来,共有一百多个类组成。一般只需20多个windows类和另外20多个通用的非windows类就可"干活"了,这一改变无疑是有很大好处的。尽管MFC如此方便,但是要学VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。那些如多少天精通什么什么的书籍其实讲的全是些如怎么使用VC这种工具的话题,学来学去学会了怎么会使用VC这种工具,而不能深入MFC编程。象VB这类工具就更令人感觉到太闷了,不过各有各的好处。

MFC虽然提高了程序员编程的效率,但是也失去了SDK编程的灵活性.....不好意思,跑题了....

本专题假定:

    C语言是windows的源语言,用C进行SDK编程是最合适的,你应该至少学过C语言,知道C语言的各种语法等,当我说到指针等类似概念的时候,你不至于茫然就行了。你还应该安装了Visual C++6.0,低版本的就不用用了吧,D版的才几块钱吗?

推荐与参考资料: 

    1.Petzold的[programming windows by petzold],这是我看过的一本书(电子书),不过是E文的,我只看了一半,"下载空间"一栏能供了该电子书。中文版的是[Windows 程序设计](包括上,下卷),Charles Petzold著,北京博彦发展有限公司译,北京大学出版社出版,本书唯一的缺点就是太贵,价格是160元。一些朋友让我多推荐一些这方面的书,我也没办法,一是这类书目前本就很少,二是如果你非要买的话,肯定要买这本书了,可是经典呢!!

    2.还有一本老书值得一提,可能市面上已经买不到了,书名[Windows 编程],刘振安著,人民邮电出版社出版发行。一个朋友曾借给我看了几天我又还了,很容易读懂的,不过一看日期,95年出版,得!没希望了。我们学校图书馆好像也有几本,不过好像都很烂。

    3.VC的在线帮助MSDN,有关SDK的资料在"Platform SDK"一栏中。

下面再加深几点概念:

什么是API:

    什么是API,有必要再谈一下,特别对于从TC过来的朋友和初学编程的朋友。API,全称application program interface,意思是应用程序编程接口(说起API并不仅仅指windows而言,windows支持的API叫winapi)。winapi就是应用程序和windows之间通讯的一个编程界面。windows提供了上千个API函数,以方便程序员来编写应用程序。做数据库管理系统是很少和API打交道的,我以前学PB,看的十几本书都没有专门的章节来介绍API的。只有到网上看那些PB技巧之类的文章才谈及API,不过还要加入一大堆声明之类的东东。好像VB也是这样。总之,进行系统编程,API是必不可少的。API是每个VC高手的必过的一关。

什么是WinSDK编程:

    WinSDK程序设计就是API方式的windows程序设计。SDK,全称Software Developers Kit,意思是软件开发工具箱。它是在windows程序设计早期,程序员进行windows程序设计所必须购买的一个软件包(不知道那时候有没有D版的)。我两个月前见SDK还不知所云。开始进行WinSDK编程用C语言最好,可以撇开C++的特性专心熟悉一下Win32编程的思路以及了解windows的消息运行机制。等把这些有所了解后,慢慢转向C++和MFC编程。不过我的观点是WinSDK编程永远要慢慢进行下去,直接接触底层代码对MFC源码的理解是有很大好处的。上周开始用MFC时,按F11进行单步跟踪,一开始见到"_tWinMain"这样古怪的东东也没有感觉到太大的迷惑,不就是相当于SDK编程中的WinMain函数吗?

什么是MFC:

    MFC,全称Microsoft Foundation Classes,伪软把WinAPI进行封装的类库。它是一个类的集合,通过覆盖WinAPI,为编程提供了一个面向对象的界面。它使windows程序员能够利用C++面象对象的特性进行编程,类似BCB的OWL,Delphi的VCL组件。它把那些进行SDK编程时最繁琐的部分提供给程序员,使之专注于功能的实现。你不妨把它想象成类似TC提供的函数库吧。用Visual C++这种开发工具编程时,可以用MFC,也可以不用,但MFC是VC的精华所在,从某种意义上来说,不会MFC就是不会使用VC。研究MFC源代码是件既快乐又痛苦的事情,不过,阵痛之后,嘻嘻,......

怎么进行WinSDK编程:

    Visual C++6.0:File-->new-->Projects-->Win32 Application(project name)—>......

    我们既然用C语言进行,就选第一项"An empty project"......

    ......好累,这篇就写这么多吧,但愿对你有帮助,也建议多给我提意见,你的反馈是我最大的动力渊源......

给我留言

留言无头像?