Windows程序编程(1):数据类型

什么是windows编程

Windows编程并不是具体的某种编程,还是指在windows平台进行的windows程序开发。


两个术语----APISDK

API,Application Programming Interface,应用程序编程接口。

Windows APIwindows提供给开发者的函数集,提供了应用程序访问底层代码的捷径,方便开发。


SDK,Software Development Kit,软件开发包。


win32SDK,主包括了API函数,帮助文档,辅助工具等。


数据类型

typedefint INT

typedef floatFLOAT

typedef longLONG

typedefshortSHORT

typedef charCHAR

再看几个数据类型定义的例子

typedef unsigned int UINT32;

typedef signed int INT32;

typedef unsigned long DWORD;

typedef unsigned short WORD


typedefLONG_PTR LPARAM       (long)

typedef UINT_PTR WPARAM      (UINT)

一般是用于参数,并且一般是回调函数的参数


UnicodeASCII编码

 Unicode用两个字节存储一个字符,这个字符可以用来表示任何文字(包括英文,汉字或其他国家的文字)
 ASCII用一个字节存储一个字符,表示英文够用了,如果汉字就需要2ASCII字符表示
 现在编程的主流对unicode编码比较推荐
 所以微软目前SDK中保留了2API,用来适应不同的编码。


单字节字符和双字节字符

 char c = ‘a’;                   单字节字符变量

 wchar_twc =L‘a’;        双字符字符变量(宽字符  unicode


Windows编程中的字符与字符串类型

 CHAR(char)   WCHAR(wchar_t)    TCHAR
 LPSTR(char* CHAR*)  LPWSTR(WCHAR* wchar_t*)   LPTSTR
 LPCSTR(const char*const CHAR*)  LPCWSTR(const WCHAR* const wchar_t*)   LPCTSTR
LP代表的就是指针
STR代表的就是指字符串
W代表的是宽字符
WCHAR wstr[10]=L"abcd"
默认ASCII编码为代表unicode编码
如果定义了UICODE(uincode编码),那么LPTSTR就是LPWSTR
如果未定义UICODE,那么LPTSTR就是LPSTR

Windows程序入口函数

 int WINAPI_t WinMain(
 _In_ HINSTANCEhInstance,
 _In_opt_ HINSTANCE hPrevInstance,
 _In_ LPTSTR   lpCmdLine,
 _In_int      nCmdShow)
 {
return 0;
 }

WINAPI ----- __stacll 一种调用约定,让编译器知道以windows兼容的方式来产生机器指令

-tWinMain ----- wWainmain_In_ HINSTANCEhInstance------当前应用程序实例句柄,句柄类似应用程序的ID,windows程序运行会为程序分配有一个类似ID号的数,这个就是实例句柄,再启动程序,从winmain函数开始执行,并且把这个实例句柄作为winmain的第一个参数;_In_  _Out_标示,只是起提示作用;_In_opt_ _Out_Opt

_In_ ----代表这个参数是个输入值,调用这个函数的时候需要传入一个值给这个参数

_Out_----代表这个参数是个输出值,可以不用传值,运行完函数后可能会有数据返回该参数中

 _In_opt_ HINSTANCE hPrevInstance,

 _In_ LPTSTR   lpCmdLine------命令行参数   

 _In_int      nCmdShow-----指示窗口如何显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值