当前位置: 首页 > 编程日记 > 正文

C#中调用Windows API时的数据类型对应关系

C#中调用Windows API时的数据类型对应关系

原文 C#中调用Windows API时的数据类型对应关系

BOOL=System.Int32

BOOLEAN=System.Int32

BYTE=System.UInt16

CHAR=System.Int16

COLORREF=System.UInt32

DWORD=System.UInt32

DWORD32=System.UInt32

DWORD64=System.UInt64

FLOAT=System.Float

HACCEL=System.IntPtr

HANDLE=System.IntPtr

HBITMAP=System.IntPtr

HBRUSH=System.IntPtr

HCONV=System.IntPtr

HCONVLIST=System.IntPtr

HCURSOR=System.IntPtr

HDC=System.IntPtr

HDDEDATA=System.IntPtr

HDESK=System.IntPtr

HDROP=System.IntPtr

HDWP=System.IntPtr

HENHMETAFILE=System.IntPtr

HFILE=System.IntPtr

HFONT=System.IntPtr

HGDIOBJ=System.IntPtr

HGLOBAL=System.IntPtr

HHOOK=System.IntPtr

HICON=System.IntPtr

HIMAGELIST=System.IntPtr

HIMC=System.IntPtr

HINSTANCE=System.IntPtr

HKEY=System.IntPtr

HLOCAL=System.IntPtr

HMENU=System.IntPtr

HMETAFILE=System.IntPtr

HMODULE=System.IntPtr

HMONITOR=System.IntPtr

HPALETTE=System.IntPtr

HPEN=System.IntPtr

HRGN=System.IntPtr

HRSRC=System.IntPtr

HSZ=System.IntPtr

HWINSTA=System.IntPtr

HWND=System.IntPtr

INT=System.Int32

INT32=System.Int32

INT64=System.Int64

LONG=System.Int32

LONG32=System.Int32

LONG64=System.Int64

LONGLONG=System.Int64

LPARAM=System.IntPtr

LPBOOL=System.Int16[]

LPBYTE=System.UInt16[]

LPCOLORREF=System.UInt32[]

LPCSTR=System.String

LPCTSTR=System.String

LPCVOID=System.UInt32

LPCWSTR=System.String

LPDWORD=System.UInt32[]

LPHANDLE=System.UInt32

LPINT=System.Int32[]

LPLONG=System.Int32[]

LPSTR=System.String

LPTSTR=System.String

LPVOID=System.UInt32

LPWORD=System.Int32[]

LPWSTR=System.String

LRESULT=System.IntPtr

PBOOL=System.Int16[]

PBOOLEAN=System.Int16[]

PBYTE=System.UInt16[]

PCHAR=System.Char[]

PCSTR=System.String

PCTSTR=System.String

PCWCH=System.UInt32

PCWSTR=System.UInt32

PDWORD=System.Int32[]

PFLOAT=System.Float[]

PHANDLE=System.UInt32

PHKEY=System.UInt32

PINT=System.Int32[]

PLCID=System.UInt32

PLONG=System.Int32[]

PLUID=System.UInt32

PSHORT=System.Int16[]

PSTR=System.String

PTBYTE=System.Char[]

PTCHAR=System.Char[]

PTSTR=System.String

PUCHAR=System.Char[]

PUINT=System.UInt32[]

PULONG=System.UInt32[]

PUSHORT=System.UInt16[]

PVOID=System.UInt32

PWCHAR=System.Char[]

PWORD=System.Int16[]

PWSTR=System.String

REGSAM=System.UInt32

SC_HANDLE=System.IntPtr

SC_LOCK=System.IntPtr

SHORT=System.Int16

SIZE_T=System.UInt32

SSIZE_=System.UInt32

TBYTE=System.Char

TCHAR=System.Char

UCHAR=System.Byte

UINT=System.UInt32

UINT32=System.UInt32

UINT64=System.UInt64

ULONG=System.UInt32

ULONG32=System.UInt32

ULONG64=System.UInt64

ULONGLONG=System.UInt64

USHORT=System.UInt16

WORD=System.UInt16

WPARAM=System.IntPtr

C++            C#
=====================================
WORD              ushort
DWORD             uint
UCHAR             int/byte   大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte 
UCHAR*            string/IntPtr
unsigned char*    [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)
char*             string/StringBuilder
LPCTSTR           string
LPTSTR            [MarshalAs(UnmanagedType.LPTStr)] string
long              int
ulong             uint
Handle            IntPtr
HWND              IntPtr
void*             IntPtr
int               int
int*              ref int
*int              IntPtr
unsigned int      uint
COLORREF          uint

附:举一个声明API的例子

[ DllImport( "Kernel32.dll" )]

public static extern System.UInt32 VirtualAllocEx(

System.IntPtr hProcess,

System.UInt32 lpAddress,

System.UInt32 dwSize,

System.UInt32 flAllocationType,

System.UInt32 flProtect

);

转:http://www.cnblogs.com/ausoldier/archive/2007/12/07/986141.html

Wtypes.h 中的非托管类型非托管 C 语言类型托管类名说明

HANDLE

void*

System.IntPtr

在 32 位 Windows 操作系统上为 32 位,在 64 位 Windows 操作系统上为 64 位。

BYTE

unsigned char

System.Byte

8 位

SHORT

short

System.Int16

16 位

WORD

unsigned short

System.UInt16

16 位

INT

int

System.Int32

32 位

UINT

unsigned int

System.UInt32

32 位

LONG

long

System.Int32

32 位

BOOL

long

System.Int32

32 位

DWORD

unsigned long

System.UInt32

32 位

ULONG

unsigned long

System.UInt32

32 位

CHAR

char

System.Char

用 ANSI 修饰。

LPSTR

char*

System.String 或 System.Text.StringBuilder

用 ANSI 修饰。

LPCSTR

Const char*

System.String 或 System.Text.StringBuilder

用 ANSI 修饰。

LPWSTR

wchar_t*

System.String 或 System.Text.StringBuilder

用 Unicode 修饰。

LPCWSTR

Const wchar_t*

System.String 或 System.Text.StringBuilder

用 Unicode 修饰。

FLOAT

Float

System.Single

32 位

DOUBLE

Double

System.Double

64 位

posted on 2013-12-26 12:06 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/3492135.html

相关文章:

linux下安装db2

最近研究了一下在 ubuntu下安装db2的过程,很快就完成安装,特贴出来供大家讨论,如有错误请多多指教。 注意:安装过程请使用root用户,否则会出现安装失败的情况; 安装过程: 准备工作: …

使用 SAX 解析器简化文档处理程序的编写

http://www-900.ibm.com/developerWorks/cn/xml/x-dochan.shtml有时候 SAX 文档处理程序的代码可能变得非常麻烦、结构性差而且难以维护,尤其是对于那些包含多种不同元素的复杂 XML 结构。本文介绍了应对这种问题的设计策略,从而有助于改进代码的质量和可…

软件体系结构风格之C/S,三层C/S,与BS

C/S的物理结构,其发展历程为(1)->(3)->(2),本文接下来要介绍的C/S为(3),即胖客户端瘦服务器,服务器只管数据库,接下来要介绍的三层C/S为(2),即客户端不胖不瘦。 C/S软件体系结构 背景:基于资源不对等&#xff0…

HDU-2020

绝对值排序 Problem Description输入n(n<100)个整数&#xff0c;按照绝对值从大到小排序后输出。题目保证对于每一个测试实例&#xff0c;所有的数的绝对值都不相等。 Input输入数据有多组&#xff0c;每组占一行&#xff0c;每行的第一个数字为n,接着是n个整数&#xff0c;…

Java归去来第2集:利用Eclipse创建Maven Web项目

一、前言 如果还不了解剧情&#xff0c;请返回第一集的剧情 Java归去来第1集&#xff1a;手动给Eclipse配置Maven环境 二、利用Eclipse创建Maven Web项目 选择File-New-Project 然后选择Maven-Maven Project 选择项目所在的工作空间目录&#xff0c;然后下一步 选择模…

vs2005什么时候能出正式版

2005试用版本出了很久了&#xff0c;不知道什么时候能出正式版&#xff0c;不会真得要推迟到2005年吧。企盼中…… 转载于:https://www.cnblogs.com/playboy2005/archive/2004/09/22/45563.html

人工神经网络是如何实现存算一体的

摘要 本文内容如题。 下图是一个神经元模型 可以将其抽象为一个数学函数yf(w1x1w2x2…wn*xnb)。也就是这个模型同时涵盖输入输出和进行计算。

编码能力的提升?_20131228

我在编程过程中发现&#xff0c;编码也是一很重要的能力&#xff0c;故花一点时间对其进行思考。 现将思考的成果与各位同行分享&#xff1b;我希望大家在看到以后&#xff0c;能提供宝贵的意见&#xff0c;先谢之&#xff01; 转载于:https://www.cnblogs.com/uestc999/p/3495…

Microsoft PowerToys for Windows XP

它们又卷土重来了&#xff01;PowerToys是由开发人员在软件产品正式发布并投放生产后相继编制的附加程序。它们的出现不仅使Windows体验更加兴味盎然&#xff0c;而且&#xff0c;还为Windows系统平添了许多功能特性。 说明&#xff1a;我们已为确保PowerToys的正常运行而付出了…

mysql主从配置读写分离笔记

第二次回头看了&#xff0c;第一次学完后感觉都会了&#xff0c;回头再看才发现什么都想不起来了。还得查资料再学习&#xff0c;虽然很简单。还是做个笔记吧&#xff01;笔记有点糙 就是自己看的因为主要是测试主从和读写分离 所以直接 yum install -y mariadb mariadb-server…

通用软件测试的6个角度

之后的课程都会围绕此展开 以QQ邮箱为例 外观界面测试 页面外观背景颜色、字体、字体格式、页面图案、动画、窗体布局功能测试 输入正确的用户名和密码可以登录&#xff0c;其他都不可性能测试 输入完邮箱的用户名和密码并单击登录按钮后&#xff0c;用户等待多长时间可以登录…

easyui源码翻译1.32--Messager(消息窗口)

前言 使用$.messager.defaults重写默认值对象。下载该插件翻译源码 消息窗口提供了不同的消息框风格&#xff0c;包含alert(警告框), confirm(确认框), prompt(提示框), progress(进度框)等。所有的消息框都是异步的。用户可以在交互消息之后使用回调函数去处理结果或做一些自己…

新闻网站个人中心(查询用户的关注信息)流程分析

1.获取当前用户登录状态 2.获取参数 用户的id user_id 3.获取新闻作者的id 4.如果新闻作者id和用户id 5.返回内容给前端转载于:https://www.cnblogs.com/zxt-cn/p/9158860.html

物联网技术与应用(第1-2课时)(cont.)

物联网的定义&#xff1a; 通过射频识别&#xff08;RFID&#xff09;、红外感应器、全球定位系统、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;将任何物品通过有线与无线方式与互联网连接&#xff0c;进行通信和信息交换&#xff0c;以实现智能化识别、定位…

db2 基础语法

一、db2 基础 基本语法 注释&#xff1a;“--”&#xff08;两个减号&#xff09; 字符串连接&#xff1a;“||” 如set msg’aaaa’||’bbbb’&#xff0c;则msg为’aaaabbbb’ 字符串的引用&#xff1a;‘’&#xff08;一定用单引号&#xff09;&#xff0c;如果需要输入单引…

Repeater分页代码

//ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间&#xff0c;我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式&#xff01; //.可惜的是它们不像Datagrid那样&#xff0c;有内置的分页功能。 // //如何解决呢&#xff1f; // //其…

消失,只为一个人存在……

好像很久很久没有24小时挂在网上了…… 每天收到的短消息来源越来越单一…… 在朋友中消失&#xff0c;所有的来电和消息&#xff0c;都不愿意理会…… 朋友虽然很重要&#xff0c;可是现在只想为一个人存在。 请各位好朋友原谅&#xff0c; 我就是那种重色轻友的人嘛…… 转载…

统一建模语言——UML(第9-20课时)(cont.)

文章目录UML概述UML是什么UML能做什么为什么要学UMLUML构造需求模型用例建模技术绘制用例图识别执行者识别用例检查形式关联关系编写用例文档用例文档的组成部分详细说明检查用例模型状态图定义组成元素复杂一点活动图定义作用组成元素绘制技巧例顺序图定义作用组成元素UML构造…

xunsearch 迅搜初探

2014年1月2日 19:34:12 1 [rootlocalhost bin]# ./php /usr/local/lamp/xunsearch/sdk/php/util/Quest.php demo "俗话说 OR pid:1"2 在 3 条数据中&#xff0c;大约有 2 条包含 俗话说 OR pid:1 &#xff0c;第 1-2 条&#xff0c;用时&#xff1a;0.0036 秒。3 4 1…

Aria2打造属于自己的下载神器

请关注微信公众号( ?sharingplus) 我使用Aria2差不多已经2年了。在这段时间使用很多下载工具&#xff0c;最开始使用的是迅雷极速版 、后面各种原因不好使了。Free Download Manager、uTorrent、qBittorrent、BitComet、IDM等等全部折腾了一遍。各有千秋&#xff0c;在上面中使…

GARFIELD@12-10-2004

无所不用其极 转载于:https://www.cnblogs.com/rexhost/archive/2004/12/10/75223.html

机器学习中的三对性能度量参数

文章目录1 分类结果混淆矩阵2 错误率和精度3 查准率P和查全率R4 真正例率TPR和假正例率FPR1 分类结果混淆矩阵 2 错误率和精度 错误率&#xff1a;分类错误的样本数占样本总数的比例 精度&#xff1a;分类正确的样本数占样本总数的比例 关系&#xff1a;两者之和为1 3 查准率…

管理输入光标的 WIN32 API 函数

下面的 API 函数是用来管理输入光标的 API 函数&#xff0c;下面是在使用C#时声明的这些函数&#xff1a; /**//// <summary> /// 参数说明&#xff1a; /// hwnd : 要创建光标的控件的句柄 /// hbm : 一个位图的句柄&#xff0c;如果指定则使用指定…

linux 防火墙 -netfilter

2019独角兽企业重金招聘Python工程师标准>>> 关于iptables 什么是iptables? 常见于linx系统下的应用层防火墙工具 firewalld 和netfilter Linux 防火墙-netfilter selinux 临时关闭 setenforce 0selinux 永久关闭 vi /etc/selinux/configcentos7 之前使用 netfilte…

信号完整性 带宽的确定

对于只包含很少电容的电路&#xff0c;可认为是梯形边沿&#xff0c;最大带宽可以采用 f1/tr.其中tr为上升时间。 对于有容性负载的电路&#xff0c;可以认为是指数边沿&#xff0c;最大带宽可以采用f4/tr.其中tr为上升时间。 参考书籍《数字信号完整性&#xff1a;互连、封装的…

验证(verification)和确认(validation)

验证&#xff1a;看软件产品是否符合需求文档 确认&#xff1a;看软件产品是否满足用户需求 整个软件测试做的事是验证

dva + antd + mockjs 实现用户管理

1.安装dva-cli npm install dva-cli -g 2.创建应用 dva new dvadashboard [dvadashboard为项目名] 3.安装mockjs npm install mockjs --save4.配置mockjs 打开.roadhogrc.mock.js 设置如下const fsrequire(fs); const pathrequire(path); const mockPathpath.join(__dirname/…

用S60操作系统SDK开发NOKIA手机应用程序(4)- 界面层框架及一些特性

Uikon和Avkon Series 60 将一个用户界面层(Avkon)添加在Symbian OS v7.0s 底层的Uikon 之上。Uikon是Symbian 核心用户界面&#xff0c;Avkon是S60平台的用户界面。Avkon 提供了一 套UI 组件和一个专为Series 60 设备设计的软件框架。UIKON 是所有Symbian OS设备都支持的一种用…

VS2010 发布web项目 问题

载&#xff1a;http://www.cnblogs.com/shaocm/archive/2012/08/10/2632116.html 转载于:https://www.cnblogs.com/zcttxs/p/3507007.html

软件生命周期中出现的文档名称(cont.)

需求相关&#xff1a;需求规格说明书 测试相关&#xff1a;测试计划书&#xff0c;测试报告