- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows 编程教案
第一课 最简单的 Windows 程序( 2 学时)
Windows 编程是一个很大的主题,涉及的方面也非常的多。 Windows 始于 90 年代,至
今 Windows 编程的发展已经非常成熟了,而 单独直接使用 API 的开发也是越来越少了。因
此,市面上很少有泛泛的简单入门级的 Windows 程序设计了。一个是系统级的 Windows 编
程介绍,如 Windows 核心编程。一个是方向级的 Windows 编程介绍如 Windows 图形编程,
Windows 网络编程等等。我们这次课的主要参考用书是 Windows 核心编程,同时也参考了
一些其他内容。 鉴于教材的价格较贵, 同时也需要考虑我们自身的学习内容不一定很多以及
学时的原因,就没有定教材。看我的教案吧。
(1) Win32 API
API
: Application Program Interface
。应用程序接口。
API
就是在进行
Windows
编程时使用的函数库。
本课就是
Windows 编程 =API+C 语言(或者 C++ 语言)
(2) 开发环境
我校机器上安装了 VC++ 6.0 。相信这是大家一直以来学习 C,C++ 使用的开发环境。 但 VC60
离我们实在太远了, 它是一款 90 年代的产品,已经近 20 年的历史了。我们机器里还有 VS2005
VS2008 ,那里面的 C 环境要比 VC60 强太多了,强烈建议大家使用更高级的平台。本次
授课的开发环境有两个。一个是轻量级的 DEV C++,一个是重量级的 VS2010. 简单程序我们都将用 DEV C++ 来实现。
DEV C++ 是一个非常小的 C 环境,但性能要优于 VC60 ,调试环境不如 VC60 。这个环境在我们的共享资源里有,大家可以下载安装。安装过程非常简单,一直下一步即可。
这是其主界面。
3) 最简单的 Windows 程序
提到最简单的程序,几乎所有的人都会想起经典的 HelloWorld 。
这不是 Windows 程序,如果在以前这叫 DOS 程序,现在叫 Windows 控制台应用程序。它不算 Windows 程序,但它很简单的就把 Helloword 显示到屏幕上了。而 Windows 程序要想把 HelloWorld 显示在屏幕上就确实不容易了。
3.1 访问 Helloworld 网站,因为把 Helloworld 显示在屏幕上并不容易,我们可以一点一点
来 , 先 让 Helloworld 以 文 字 形 式 出 现 在 其 他 地 方 , 这 里 我 们 通 过 访 问 网 站
。把
helloworld
展现在网页浏览器的地址栏上。真有这个网站吗?唉,
貌似还真有。
运行程序,打开浏览器并访问网站。
这是 Windows 程序。
Windows 程序和我们以前的程序有什么不同呢?
Windows 程序不能使用 scanf,printf,cin,cout 。所以输出 helloworld 变得没有以前容易了。
windows 程序一定要 #include <windows.h>
windows
程序的主函数不是
main,是
WinMain
。注意区分大小写。
主函数的参数不一样了
int main(int argc ,char[] * argv)
int WinMain(HINSTANCE
hInstance, HINSTANCE,LPSTR lpStr,int nShow)
绝大多数的人,初次接触
Windows
编程都会被其冗长的名字所折服,啊,没办法,这
就是 Windows 的命名规格,叫匈牙利命令法,是微软的一个匈牙利籍的程序员发明的,它
的作用的能够让变量, 类型名能够真实的反应其代表的意义, 这对英语人士自然很好。 对英语不好的接受起来就有点难了。
详细解释一下
WinMain 是 Windows 编程的主函数。一定注意大小写啊。
HINSTANCE ,用 Windows 的说法叫句柄数据类型。 但它并不是一个新的数据类型,
是通过 #define 定义出来的。
它
#define
DECLARE_HANDLE(name)struct
name##__{ int unused;};
typedef
struct
name##__ *name
DECLARE_HANDLE(HINSTANCE);
上面两行是
windef.h
中对
HINSTANCE
的定义。说到底
HINSTANCE
就是一个指针类型 。
LPSTR
是
typedef
char *
文档评论(0)