第一讲:预备知识与概念介绍

注:我写这个专题目的是为VC初学者提供一个思路,我本人很菜,但我认为对于VC初学者来讲,可能有点帮助,当然,对于WinSDK编程,我也是刚刚接触。如果你对WinSDK编程较熟,请与我联系,咱们共同来把这个专题做好,如果你发现了什么错误,也麻烦你给我留言指正。我写的内容也基本上是我自己的一些理解,错误是肯定有的,如果你发现我的理解偏差很大的话,麻烦你提醒一下。---小朱!

什么是WinSDK:

大致说来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"......

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

转载于:https://www.cnblogs.com/xiuyusoft/archive/2011/06/16/2084481.html

VC-SDK路报(预备知识与概念介绍)相关推荐

  1. 《统计自然语言处理》读书笔记 一.基础知识及概念介绍

    最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一 ...

  2. django框架预备知识

    内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...

  3. 我的STM32自学之路(3)---预备知识(时钟树,GPIO模式)

    3.预备知识---时钟树,GPIO模式 本来是打算写跑马灯,可是发现外设配置时用到的时钟的确有点烦,所以这一节①理一理stm32的时钟系统②解释一下GPIO口各个模式是什么鬼(推挽.上拉等等).Let ...

  4. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  5. Qt DLL总结【一】-链接库预备知识

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 1.链接库概念 静 ...

  6. 机器学习应该准备哪些数学预备知识?

    转 https://www.zhihu.com/question/36324957 https://www.zhihu.com/question/36324957/answer/139408269 机 ...

  7. (连载)边喝咖啡边学Unity——第二章 预备知识体系

    第二章 预备知识体系 --本章涉及空间数学.解析几何.线性代数.计算机图形学.算法.数据结构等众多基础学科.同上一章相比,虽然枯燥,但是绝不能称为废话之章,即使粗略的看一遍,也比直接跳过来的好,详细地 ...

  8. [转]预备知识—程序的内存分配

    因为经典,所以转发. 一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack)  -   由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方 ...

  9. 微积分笔记(一)--预备知识

    文章目录 预备知识 什么是微积分 一. 直线 1.1 增量 1.2 直线的斜率 1.3 平行线和垂直线 1.4 直线的方程 二.函数和图形 2.1 映射 2.2 逆映射与复合映射 2.3 函数 2.4 ...

最新文章

  1. Delphi APP 開發入門(五)GPS 定位功能
  2. Windows下载Android源代码
  3. Ethermint部署及框架解析
  4. Linux共享库路径配置
  5. IMP出现的ORA-01401错误可能和字符集有关(转载)
  6. Vuex说明及Todos项目改造
  7. koa --- jwt实现最简单的Token认证
  8. 如何将多个Android Wear手表与单个手机配对
  9. c语言开发破解pdf软件,ARM处理器与C语言开发应用(第2版) PDF
  10. 二分的思想在算法中体现
  11. php枚举属于什么类型,python枚举类型是什么?python枚举类型的简单介绍
  12. 第十七周项目2-引用作形参
  13. Eclipse探秘-第一章-Eclipse启动(1)
  14. Kali-linux :arping命令
  15. Chorme 模拟分辨率设置
  16. 解密七种html网页加密解密法
  17. 抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
  18. TS+M3U8+directshow流媒体播放器 简介
  19. Games104 Lecture 11 物理系统:高级应用
  20. 2020元旦献礼——从零开始开发一个操作系统

热门文章

  1. Android开源框架:Universal-Image-Loader解析(四)TaskProcess
  2. 构建和实现单点登录解决方案
  3. “Internet Explorer无法打开站点,已终止操作”解决
  4. powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
  5. SqlServer 日期时间格式 字符串相互转换 及相关函数
  6. [转]Pytest 基础教程
  7. 案例解析|政府信息化的BI建设应用
  8. centos安装软件后没有快捷键,创建桌面快捷键的方式【pycharm的快捷键】
  9. 树莓派3代linux,树莓派 3B 入门 ARMv8 Arch Linux
  10. linux 附加数据库文件,SQL Server 数据库分离与附加图文详解