VC-SDK路报(预备知识与概念介绍)
第一讲:预备知识与概念介绍
注:我写这个专题目的是为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路报(预备知识与概念介绍)相关推荐
- 《统计自然语言处理》读书笔记 一.基础知识及概念介绍
最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一 ...
- django框架预备知识
内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...
- 我的STM32自学之路(3)---预备知识(时钟树,GPIO模式)
3.预备知识---时钟树,GPIO模式 本来是打算写跑马灯,可是发现外设配置时用到的时钟的确有点烦,所以这一节①理一理stm32的时钟系统②解释一下GPIO口各个模式是什么鬼(推挽.上拉等等).Let ...
- (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ
开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...
- Qt DLL总结【一】-链接库预备知识
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 1.链接库概念 静 ...
- 机器学习应该准备哪些数学预备知识?
转 https://www.zhihu.com/question/36324957 https://www.zhihu.com/question/36324957/answer/139408269 机 ...
- (连载)边喝咖啡边学Unity——第二章 预备知识体系
第二章 预备知识体系 --本章涉及空间数学.解析几何.线性代数.计算机图形学.算法.数据结构等众多基础学科.同上一章相比,虽然枯燥,但是绝不能称为废话之章,即使粗略的看一遍,也比直接跳过来的好,详细地 ...
- [转]预备知识—程序的内存分配
因为经典,所以转发. 一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack) - 由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方 ...
- 微积分笔记(一)--预备知识
文章目录 预备知识 什么是微积分 一. 直线 1.1 增量 1.2 直线的斜率 1.3 平行线和垂直线 1.4 直线的方程 二.函数和图形 2.1 映射 2.2 逆映射与复合映射 2.3 函数 2.4 ...
最新文章
- Delphi APP 開發入門(五)GPS 定位功能
- Windows下载Android源代码
- Ethermint部署及框架解析
- Linux共享库路径配置
- IMP出现的ORA-01401错误可能和字符集有关(转载)
- Vuex说明及Todos项目改造
- koa --- jwt实现最简单的Token认证
- 如何将多个Android Wear手表与单个手机配对
- c语言开发破解pdf软件,ARM处理器与C语言开发应用(第2版) PDF
- 二分的思想在算法中体现
- php枚举属于什么类型,python枚举类型是什么?python枚举类型的简单介绍
- 第十七周项目2-引用作形参
- Eclipse探秘-第一章-Eclipse启动(1)
- Kali-linux :arping命令
- Chorme 模拟分辨率设置
- 解密七种html网页加密解密法
- 抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
- TS+M3U8+directshow流媒体播放器 简介
- Games104 Lecture 11 物理系统:高级应用
- 2020元旦献礼——从零开始开发一个操作系统
热门文章
- Android开源框架:Universal-Image-Loader解析(四)TaskProcess
- 构建和实现单点登录解决方案
- “Internet Explorer无法打开站点,已终止操作”解决
- powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
- SqlServer 日期时间格式 字符串相互转换 及相关函数
- [转]Pytest 基础教程
- 案例解析|政府信息化的BI建设应用
- centos安装软件后没有快捷键,创建桌面快捷键的方式【pycharm的快捷键】
- 树莓派3代linux,树莓派 3B 入门 ARMv8 Arch Linux
- linux 附加数据库文件,SQL Server 数据库分离与附加图文详解