Windows运作机制的核心是一个称作「动态链接」的概念。Windows提供了应用程序丰富的可呼叫函数,大多数用于实作其使用者接口和在视讯显示器上显示文字和图形。这些函数采用动态链接库(Dynamic Linking Library,DLL)的方式撰写。这些动态链接库是些具有.DLL或者有时是.EXE扩展名的文件,在Windows 98中通常位于/WINDOWS/SYSTEM子目录中,在Windows NT中通常位于/WINNT/SYSTEM和/WINNT/SYSTEM32子目录中。
在Windows程序中,使用Windows函数的方式通常与使用如strlen等C语言链接库函数的方式相同。主要的区别在于C语言链接库函数的机械码连结到您的程序代码中,而Windows函数的程序代码在您程序执行文件外的DLL中。
当您执行Windows程序时,它通过一个称作「动态链接」的过程与Windows相接。一个Windows的.EXE文件中有使用到的不同动态链接库的参考数据,所使用的函数即在那些动态链接库中。当Windows程序被加载到内存中时,程序中的呼叫被指向DLL函数的入口。如果该DLL不在内存中,就把它加载到内存中。
当您连结Windows程序以产生一个可执行文件时,您必须连结程序开发环境提供的特定「引用链接库(import library)」。这些引用链接库包含了动态链接库名称和所有Windows函数呼叫的引用信息。连结程序使用该信息在.EXE文件中建立一个表格,在加载程序时,Windows使用它将呼叫转换为Windows函数。
第一个Winodws程序:
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
return 0 ;
}
#include <windows.h>
WINDOWS.H 是主要的含入文件,它包含了其它Windows表头文件,这些表头文件的某些也包含了其它表头文件。这些表头文件中最重要的和最基本的是:
  • WINDEF.H 基本型态定义。
  • WINNT.H 支持Unicode的型态定义。
WINBASE.H Kernel函数。
WINUSER.H 使用者接口函数。
WINGDI.H 图形设备接口函数。
这些表头文件定义了Windows的所有数据型态、函数呼叫、数据结构和常数标识符,它们是 程序进入点
正如在C程序中的进入点是函数main一样,Windows程序的进入点是WinMain,总是像这样出现:
int WINAPI WinMain (      HINSTANCE hInstance,HINSTANCE hPrevInstance,
           PSTR szCmdLine,int iCmdShow)
  • Windows文件中的一个重要部分。
它在WINBASE.H中声明如下:
int
WINAPI
WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nShowCmd
    );

附:Windows数据类型:

数据类型  说明
BOOL 布尔变量,实际上是 UINT
COLORREF 用作颜色索引的 32 位整数
DWORD 32 位的无符号整数
HANDLE 32 位的无符号整数,用作句柄
HINSTANCE 32 位的无符号整数,用作实例句柄
HWND 32 位的无符号整数,用作窗口句柄
HDC 一个设备描述背景的句柄
LONG 32 位带符号整数
LPARAM 32 位整数,用作窗口函数或者其他回调函数的参数之一
LPCSTR 指向一个字符串常量的 32 位指针
LPSTR 定义一个线性的 32 位字符串指针
LRESULT 32 位整数,是窗口函数或者其他回调函数的返回值类型
UINT 定义一个新的 Win32 数据类型,它会把一个参数强制转换成 Windows3.x 应用中的 16 位值 或 Win32 应用中的 32 位值
WCHAR 声明一个 16 位的 UNICODE 字符,用来表示世界上所有已知的书写语言的符号
WORD 16 位的无符号整数
WPARAM 32 位整数,用作窗口函数或者其他回调函数的参数之一 ( 在 Windows3.x 中为 16 位值 )
同时,为了统一变量的命名,在 Windows 中,不同类型的变量拥有各自的标准前缀,一般情况如表所示。
                  不同数据类型的前缀
前缀 数据类型
c 字符 (char)
s 短整数 (short)
cb 用于定义对象 ( 一般为一个结构 ) 尺寸的整数
n 整数 (integer)
sz 以 '/0' 结尾的字符串
b 字节
f BOOL
w 字 (WORD ,无符号短整数 )
l 长整数 (LONG)
h HANDLE( 无符号整数 )
m_ 类成员变量
fn 函数 (function)
dw 双字 (DWORD, 无符号长整数 )

Window程序设计(一)相关推荐

  1. window程序设计学会_是时候我们学会设计合适的饼图了

    window程序设计学会 Pie charts are common in data science - next to the 饼形图在数据科学中很常见- bar chart and the lin ...

  2. 第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C

    1.边界框及LINDEMO.C /*边界框:画矩形*/ Rectangle (hdc, xLeft, yTop, xRight, yBottom) ;/*画椭圆*/ Ellipse (hdc, xLe ...

  3. window程序设计(创建、选择和删除画笔)

    尽管使用备用对象中的画笔非常方便,但只能使用实心的黑色画笔.实心的白色画笔 或者没有画笔三种情况.如果想获得更丰富的效果,则必须创建自己的画笔. 这里是创建画笔的一-般过程:调用CreatePen或者 ...

  4. vba交付图表设计_您是在为交付目的而“设计”吗?

    vba交付图表设计 重点 (Top highlight) It's a regular Monday morning. All the design team is organizing the ta ...

  5. swift自行车品牌介绍_品牌101:简介

    swift自行车品牌介绍 Sometimes when I'm around designer friends and there's a lull in the conversation one o ...

  6. 长语音识别体验_如何为语音体验写作

    长语音识别体验 重点 (Top highlight) "Voice User Interface (VUI) Designer" is an increasingly promin ...

  7. 一致性设计,而不是一致性

    一致性设计 重点 (Top highlight) If we ask any design system advocate what are the main reasons to build and ...

  8. 设计模式 日志系统设计_模式:我们设计系统的故事

    设计模式 日志系统设计 Design Patterns are some of the most over-used concepts in design today. And we all know ...

  9. 谷歌maps菜单语言设置_Google Maps:拯救未来之路— UX案例研究

    谷歌maps菜单语言设置 I have a lousy sense of direction, so Google Maps has always been my right-hand app. On ...

最新文章

  1. Android Studio 插件的使用
  2. 深入理解计算机系统-之-内存寻址(四)--linux中分段机制的实现方式
  3. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第6章-参数不确定的高阶非线性多智能体系统一致性控制
  4. sm4 的s盒_SM4国密算法Java版
  5. iOS 序列化与反序列化
  6. java中开根号求三角形_Java编程 如何计算三角形的内切圆半径?
  7. 翻译的一篇关于学习编程语言的小文章
  8. sql2000数据库备份文件还原到sql2005
  9. 数据库MySQL驱动5.1.22下载_mysql-connector-java-5.1.22下载
  10. 思科三层交换机开启ipv6路由功能_三层交换机实现路由功能配置示例与详解 (Cisco Packer Tracer 模拟器)...
  11. python初体验(2)——面向对象篇
  12. 知乎7万赞回答:你思考问题的方式,决定了你的层次
  13. Winform Chart控件常见问题汇总
  14. 遥感影像人口数据、气象数据、社会统计数据、GDP空间分布数据
  15. Mozilla 宣布 Firefox OS 应用原生支持 Android
  16. Pixel2Mesh-Tensorflow2
  17. windows下wgrib/wgrib2和python读取grib2数据
  18. buctoj-2022寒假集训4
  19. Adobe也封杀中国账号了,技术管理者如何做到有备无患
  20. 推荐 8 个我私藏的大厂技术大佬公众号 !助你高速成长!

热门文章

  1. 《数学建模简明教程--基于python》学习笔记-第四章-微分方程-课后习题解答
  2. Random image cropping and patching (RICAP)
  3. TypeScript实现小游戏---贪吃蛇(超详细)
  4. Windows 在目录中搜索哪个文件中有指定字符串
  5. mysql----where 1=1是什么意思
  6. 政策解读│软件产业企业所得税优惠政策介绍(2022年版)
  7. VMware虚拟机多开克隆教程
  8. 运维PaaS平台,让数据发挥更大的价值
  9. Word文档如何进行压缩文件?
  10. Fluent的融化凝固模型介绍