Window程序设计(一)

 
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, 无符号长整数 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值