`
txf2004
  • 浏览: 6875226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《Windows程序设计》第一章 起步

 
阅读更多

这些程
式使用C语言撰写并原原本本的使用Windows API来开发程式。我将这种方法称作「古典」Windows程式设计。这是我们在1985年为Windows 1.0写程式的方法,它今天仍是写作Windows程式的有效方法。

一般而言,Windows APIWindows 1.0以来一直保持一致,没什么重大改变。

Windows API和它的语法的最大变化来自於从16位元架构向32位元架构转
化的过程中。

使用C语言和原始的API不是编写Windows 98程式的唯一方法。然而,这
种方法却提供给您最佳的性能、最强大的功能和在发掘Windows特性方面最大
的灵活性。可执行档案相对较小且运行时不要求外部程式库(自然,Windows DLL
自身除外)。

虽然我认为学习古典的Windows程式设计对任何Windows程式写作者都是
重要的,我没有必要建议使用CAPI编写每个Windows应用程式。许多程式
写作者,特别是那些为公司内部开发程式或在家编写娱乐程式的程式写作者喜
欢轻松的开发环境,例如Microsoft Visual Basic或者Borland Delphi(它结
合了物件导向的Pascal版本)。

在专业程式写作者中——特别是那些开发商业应用程式的程式写作者——
Microsoft Visual C++Microsoft Foundation Class LibraryMFC)是近年
来流行的选择。MFC在一组C++物件类别中封装了许多Windows程式设计中的琐
碎细节。

最近,InternetWorld Wide Web的流行大力推广著Sun Microsystems
Java,这是一个受C++启发却与微处理器无关的程式设计语言,而且结合了
可在几个作业系统平台上执行的图形应用程式开发工具组。

在原始的Windows API之上的任何软体层都必定将您限制在全部功能的一
个子集内。您也许发现,例如,使用Visual Basic编写应用程式非常理想,然
而它不允许您做一个或两个很简单的基本工作。在这种情况下,您将不得不使
用原始的API呼叫。API定义了作为Windows程式写作者所需的一切。没有什么
方法比直接使用API更万能的了。

MFC尤其问题百出。虽然它大幅简化了某些工作(例如OLE),我却经常发
现要让它们按我所想的去工作时,会在其他特性(例如Document/View架构)
上碰壁。MFC还不是Windows程式设计者所追求的灵丹妙药。

编写第一个Windows程序

#include <stdio.h>
int main()
{
printf("Hello, world\n");
return 0;
}
同样效果的Windows程序:

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
MessageBox(NULL, TEXT("Hello, Windows 98!"), TEXT("HelloMsg"), 0);
return 0;
}

创建过程:打开VS,新建VC++下的Win32 Application。在建好的解决方案中的源代码文件夹下添加C++文件,取名为HelloMsg.c。拷贝以上代码并运行,得到提示框:Hello, Windows 98。

表头档案

WINDOWS.H是主要的含入档案,它包含了其他Windows表头档案,这些表头
档案的某些也包含了其他表头档案。这些表头档案中最重要的和最基本的是:
WINDEF.H基本型态定义。
WINNT.H支援Unicode的型态定义。
WINBASE.H Kernel函式。
WINUSER.H使用者介面函式。
WINGDI.H图形装置介面函式。

程序进入点

正如在C程式中的进入点是函数main一样,Windows程式的进入点是
WinMain

编译、连结和执行

在编译阶段,编译器从C原始码档案产生一个.OBJ(目标)
档案。在连结阶段,连结程式结合.OBJ档案和.LIB(库)档案以建立.EXE(可
执行)档案。

KERNEL32.LIB
USER32.LIBGDI32.LIB。这些是三个主要Windows子系统的「引用程式库」。
它们包含了动态连结程式库的名称以及放进.EXE档案的引用资讯。Windows使
用该资讯处理程式对KERNEL32.DLLUSER32.DLLGDI32.DLL动态连结程式库
中函数的呼叫。

分享到:
评论

相关推荐

    Windows程序设计(第5版 珍藏版)清华版 1-4

    作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全面地介绍了Windows程序设计所涉及的细枝末节,旨在帮助读者从高屋见瓴的角度,建立完整的知识体系,为以后的职业生涯奠定良好的基础。全书共3部分23章...

    windows 程序设计中文版

    第1章 起步 1.1 Windows环境 1.1.1 Windows简史 1.1.2 Windows的方方面面 1.1.3 动态链接 1.2 Windows编程选项 1.2.1 API及内存管理模式 1.2.2 语言选择 1.2.3 编程环境 1.2.4 API文档 1.3 你的第一个Windows程序 ...

    Visual C++程序设计自学手册光盘

    提高篇包括第10~19章,主要介绍打印、ODBC数据库编程、ADO数据库编程、文件操作、注册表与INI文件操作、动态链接库、进程与线程、网络编程和程序调试等技术,基本上每一章都对应一方面的技术,读者可以根据自己的...

    Windows编程循序渐进(清晰完整版)part2

    第三篇 Windows系统程序设计篇 第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术

    Java程序设计自学手册光盘

    Java程序设计自学手册 王国辉,李钟尉,王毅 人民邮电出版社 本书从初学者的角度出发,通过通俗易懂的语言和大量生动典型的实例,由浅入深、循序渐进地介绍应用Java进行网络编程的常用技术和方法。全书分为3篇,共20...

    Windows编程循序渐进(清晰完整版)part1

    第三篇 Windows系统程序设计篇 第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术

    Windows编程循序渐进(清晰完整版)part3

    第三篇 Windows系统程序设计篇 第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术

    Windows编程循序渐进(清晰完整版).part2

    第三篇 Windows系统程序设计篇  第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术 附录 光盘...

    Windows编程循序渐进(清晰完整版).part3

    第三篇 Windows系统程序设计篇  第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术 附录 光盘...

    Windows编程循序渐进(清晰完整版).part1

    第三篇 Windows系统程序设计篇  第12章 进程与线程 第13章 内存管理 第14章 进程间通信 第15章 线程同步 第16章 动态链接库 第17章 结构化异常处理 第18章 可执行文件格式 第19章 模块注入与函数挂接技术 附录 光盘...

    Windows编程循序渐进(清晰完整版)2

    ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的...

    Windows编程循序渐进(清晰完整版)4

    ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的...

    Windows编程循序渐进(清晰完整版)1

    ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的...

    Windows编程循序渐进源码

     第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。  第2章,对话框应用程序:熟悉模态、非模态对话框,以及通常对话框的原理与使用方法。  第3章,基本控件:介绍按钮、编辑框、列表框等基本控件...

    Windows编程循序渐进(清晰完整版)7

    ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的...

    Visual C# 2005程序设计自学手册 随书源码第一部分(共三部)

    Visual C# 2005 程序设计自学手册 *****是随书源码光盘***** *****人民邮电出版社***** **长春明日科技组织编写** 本书从初学者角度出发,通过通俗易懂的语言和大量生动典型的实例,由浅入深、循序渐进地介绍使用...

    Windows编程循序渐进(清晰完整版)5

    ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的...

Global site tag (gtag.js) - Google Analytics