zoukankan      html  css  js  c++  java
  • Windows API中的数据结构

    值得说明的是,win32开发是C语言编程,因此,搞明白数据类型还是非常重要的。Windows API因为历史原因或者为了方便在WinUser.h中将一些数据类型用typedef或者define宏重新进行定义。

    • UINT表示C语言中的无符号整型unsigned int
    • PSTR表示字符串指针char *
    • WPARAM在16位时期的Windows中表示unsigned short int,而现在都是UINT
    • LPARAM表示long
    • WndProc函数的返回类型LRESULT实际上就是long
    • 入口函数WinMain被指定的WINAPI和WndProc被指定的CALLBACK都表示的是_stdcall,表示Windows和用户应用程序之间发生函数呼叫的参数传递方式。

    另外,句柄是Windows API中大量使用的一种类型,比如HINSTANCE, HWND, HDC, HICON, HCUROR, HBRUSH。它们其实是一个32位的整数,代表某种特定的对象。据我所知这东西似乎也是单任务时期Windows的遗留产物,把同一个程序的不同实例进行标记,从而可以在它们之前进行内存上的继承。

    Windows的变量遵从匈牙利表示法,用开头的小写字母表示变量的类型属性,比如:

    • szCmdLine中的sz表示结尾为””的字符串
    • hInstance和hPrevInstance开头的字母h表示句柄handle
    • iCmdShow的起始字母i表示整型

    而对于结构变量,比如MSG结构,就直接用msg表示;WNDCLASS结构wndclass; PaintStructure结构ps,等等。

    现在看看,Windows的确有值得学习的地方,能够用C语言建起一个系统内核和应用层,再通过其他的语言对Windows APIs进行封装,构建COM, ATL, MFC, .NET等等更高的不同层次的开发层。现在在Visual Studio2015居然还嵌入了Java SE development,一个平台就可以编写Desktop, Mobile Phone, Android, iOS程序。以前就听闻Windows是最疼惜程序员的平台,就是太贵,不过现在Visual Studio 2015有免费授权的社区版Lisence可以用。

  • 相关阅读:
    级联操作
    深入解析http协议
    http状态码
    数据库在一对一、一对多、多对多怎么设计表关系
    [转载]C#深拷贝的方法
    TraceSource记录程序日志
    .NET 垃圾回收与内存泄漏
    DevExpress GridControl使用方法总结
    DevExpress使用技巧总结
    Oracle 错误代码小结
  • 原文地址:https://www.cnblogs.com/make217/p/5234834.html
Copyright © 2011-2022 走看看