windows类型
_IN_ 输入型参数 _OUT_ 输出型参数
typedef unsigned long DWORD;//double word
typedef int BOOL;//因为cpu原因4字节的int运行比较快,所以改为int型
typedef unsigned char BYTE;//一个字节
typedef unsigned short WORD;//两个字节表示一个字
typedef float FLOAT;
typedef FLOAT *PFLOAT;//P表示指针
typedef BOOL near *PBOOL;//near和far区别在于,near中P代表指针是新版的表示方法,far是旧版的表示方法为LP
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;//C表示const
#define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
将两个单字节变量合成一个双字节的变量并返回,例如MAKEWORD(1234,4567);MAKEWORD会通过将1234和4567进行&0xff将大于一个字节的部分去掉,再通过移位和|操作将两个数合成一个双字节变量,
可以看出MAKEWORD(a,b),b为高位,为低位
#define MAKELONG(a, b) ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))
和上面的大致相同
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
拆分4个字节的变量l 拆分成word型,并返回其中的地位
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
和上面的相同,这次返回高位
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))
和上面的大致相同只是拆分的变量变为word型,拆成byte型
windows类型的更多相关文章
- 匈牙利命名法——命名规范(知道这些再看Windows程序就轻松多了)
匈牙利命名法著名的命名规则当推Microsoft公司的"匈牙利"法,该命名规则的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解".例如所有的字符变量 ...
- linux_文件类型
linux中文件类型? 在linux系统中一切(目录.普通文件.设备文件等)皆文件 d 目录 - 普通文件 l 链接文件 b 快设备和其他外网设备 普通文件: - ...
- Jenkins踩坑系列--你试过linux主机ssh登录windows,启动java进程吗,来试试吧
一.问题概述 在一个多月前,组长让我研究下持续集成.我很自然地选择了jenkins.当时,(包括现在也是),部分服务器用的是windows主机. 我当时想了想,如果我把jenkins装在windows ...
- windows编程命名规则
转自:http://blog.sina.com.cn/s/blog_52cbfc3f0100fdy6.html 匈牙利命名法是一种编程时的命名规范.基本原则是:变量名=属性+类型+对象描述.其中每一对 ...
- Centos7利用kvm搭建Windows虚拟机
这几天玩了一下kvm虚拟化,真的很有意思,我把这几天踩的坑,还有收获,都记录下来,作为以后的复习和检查. 首先说一下我的基本逻辑,我有一台win7的笔记本,我的底层虚拟化是使用VMWare构建的Cen ...
- 六. jenkins部署springboot项目(3)--windows环境--远程windows server服务器
前提:jenkins服务器和windows server服务器不在一台机器上 对于jenkins服务器上编译好的jar或war包如何推送到windows server服务器上. 参照网上的,在wind ...
- Git - git bash 在 windows 下创建软连接
1. 概述 使用 git bash 在 windows 下创建软连接 或者叫 快捷方式 感谢 Tony 老师的帮助 Tony 的技术笔记 Windows 使用 ln -s 创建软链接 2. 问题 需求 ...
- jenkins结合cygwin软件实现从centos发布代码rsync到windows server2019的过程
jenkins结合cygwin软件实现从centos发布代码rsync到windows server2019的过程 1.下载cygwin这个软件打开https://cygwin.com/install ...
- 如何搭建 node,react 开发环境
项目相关内容:Sublime + Node + React --注意:在 windows 操作系统中,如果把 node 安装在系统盘(一般是C盘),会导致 node 没有操作文件的权限的问题,如无法新 ...
随机推荐
- Excel上传找到错误数据类型
一:查询数据库表中字段的类型语句 SELECT CASE WHEN col.colorder = 1 THEN obj.name ELSE '' END AS 表名, col.colorder AS ...
- andorid 菜单 进度条
activity_ui2.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- hdu 1255(线段树 扫描线) 覆盖的面积
http://acm.hdu.edu.cn/showproblem.php?pid=1255 典型线段树辅助扫描线,顾名思义扫描线就是相当于yy出一条直线从左到右(也可以从上到下)扫描过去,此时先将所 ...
- iOS.Operation-on-ZipFile
Operation on ZipFile Reference 在Mac OS X和iOS中操作.zip文件(例如创建zip文件, 从zip文件中抽取数据): 1. http://stackoverfl ...
- delphi新手到高手的工具--castalia
castalia翻译是 神泉 ,是delphi的一个优秀第三方工具.其重构功能尤为突出.代码实时编译提示也很棒. 自卑delphi开发工具没有eclipse那么强大的提示?有castalia为你提升信 ...
- UI设计教程:如何在设计中运用颜色
灰度优先 我们习惯在设计阶段的早期就开始调整颜色和色调.但是,当你意识到自己花了3个小时来调整主色调的时候,你发现这种行为毫无帮助.虽然把玩颜色很有吸引力,但是你应该避免在设计初期进行这种行为. 相反 ...
- HashMap 、HashTable、TreeMap、WeakHashMap的区别是什么
Java为数据结构中的映射定义了一个接口java.util.Map,它有4个实现类:HashTable.HashMap.TreeMap.WeakHashMap. HashMap和HashTable的区 ...
- 增加samba用户提示Failed to add entry for user
1.首先在Ubuntu安装好samba,具体步骤为:安装samba:sudo apt-get install samba安装smbclient:sudo apt-get install 安装smbfs ...
- Python编程笔记(第二篇)二进制、字符编码、数据类型
一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存储单位,1bytes缩写为1B 1KB = 10 ...
- python r r+ w w+ rb 文件打开模式的区别
# 只读模式with open ( "file.txt" ,'r' ) as f: for line in f.readlines(): ...