C++ C#
=====================================
WORD ushort
DWORD uint
UCHAR int/byte 大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte
UCHAR* string/IntPtr
unsigned char* [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)
char* string
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与C#的数据类型对应关系表
|
API数据类型 |
类型描述 |
C#类型 |
API数据类型 |
类型描述 |
C#类型 |
WORD |
16位无符号整数 |
ushort |
CHAR |
字符 |
char |
LONG |
32位无符号整数 |
int |
DWORDLONG |
64位长整数 |
long |
DWORD |
32位无符号整数 |
uint |
HDC |
设备描述表句柄 |
int |
HANDLE |
句柄,32位整数 |
int |
HGDIOBJ |
GDI对象句柄 |
int |
UINT |
32位无符号整数 |
uint |
HINSTANCE |
实例句柄 |
int |
BOOL |
32位布尔型整数 |
bool |
HWM |
窗口句柄 |
int |
LPSTR |
指向字符的32位指针 |
string |
HPARAM |
32位消息参数 |
int |
LPCSTR |
指向常字符的32位指针 |
String |
LPARAM |
32位消息参数 |
int |
BYTE |
字节 |
byte |
WPARAM |
32位消息参数 |
int |
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
<---------补充----------->
Wtypes.h 中的非托管类型 非托管C 语言类型 托管类名 说明
HANDLE void* System.IntPtr 32 位
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.StringBuilder 用 ANSI 修饰。
LPCSTR Const char* System.String 或 System.StringBuilder 用 ANSI 修饰。
LPWSTR wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
LPCWSTR Const wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
FLOAT Float System.Single 32 位
DOUBLE Double System.Double 64 位
分享到:
相关推荐
本人慢慢在网上各地收集及自己验证后总结的C/C++和C#的数据类型对照.没有完全 验证..组织部 类型太多了..要怪就怪C/C++的type define这个该死的语法 吧...
本篇文章将详细探讨C#与C++数据类型的对照,帮助开发者更好地理解和转换这两种语言中的数据类型。 一、基本数据类型 1. 整型 在C#中,整型数据类型包括`sbyte`(8位有符号整数)、`byte`(8位无符号整数)、`short...
总的来说,理解 C# 和 C++ 之间的数据类型对照关系对于进行跨语言编程至关重要,这有助于确保数据在不同语言间正确传递和转换,从而避免潜在的类型错误和内存问题。在实际开发中,应根据具体需求选择合适的数据类型...
C#与C++类型对应表是指在使用.Net互操作时,需要将C++数据类型转换为C#数据类型,以便正确地调用C++的API。在这个文档中,我们对C++数据类型和C#数据类型进行了对照,以便开发者能够快速地查找和转换类型。 首先,...
本文将详细解析《C#与C、C++类型对照表》,这是一份重要的参考资料,旨在帮助开发者了解C#与C、C++之间的数据类型映射关系,从而更高效地进行代码移植或互操作。 ### C#与C/C++类型对照表详解 #### 基础数据类型...
以下是对C#和C++数据类型的一个详细对照和解释: **C++数据类型:** 1. **WORD**: C++中的`WORD`是无符号16位整数,通常用于表示较小的计数或标识。 2. **DWORD**: `DWORD`是无符号32位整数,它在Windows API中...
### C++与C#数据类型对照表解析 在进行跨语言编程时,了解不同编程语言之间的数据类型对应关系是至关重要的。特别是在C++与C#这两种语言之间进行交互时,明确不同类型之间的转换规则有助于实现更高效、更准确的程序...
### C++与C#数据类型对照表及其应用 在跨语言编程中,了解不同编程语言之间的数据类型对应关系是至关重要的。特别是在C++与C#这两种语言之间进行接口封装与调用时,正确理解并使用数据类型转换可以有效避免很多问题...
C#调用DLL中非托管C++函数参数类型对照 在C#编程中,经常需要调用C++中的DLL类库,这就需要了解C++中的函数参数类型在C#中的对应关系。以下是基本数据类型的对照: * 一维数组:C#参数在基本类型前加ref或out,out...
### C++与C#函数类型对照表解析 在软件开发领域,尤其是在进行跨语言编程时,理解不同编程语言之间的类型转换至关重要。本文旨在通过详细分析一份C++与C#函数类型的对照表,帮助读者更好地理解这两种语言之间的数据...
了解Windows API与C#之间的数据类型对照表对于进行跨平台编程或者系统级开发至关重要。本篇文章将详细解析这两者之间的对应关系,并探讨如何在C#中使用Win API函数。 首先,我们来看标题中的“Win Api与C#数据类型...
这里我们主要讨论C++与.NET框架中的C#数据类型的对照和转换,这对于在C++项目移植到C#环境,或者C#调用C++编写的DLL时尤其重要。 首先,C++和C#的数据类型在基本类型上有很大的相似性,但也有差异。在C++中,数据...
通过以上详细的类型对照表,我们可以清晰地了解到C++与C#之间的数据类型如何映射。这对于编写跨语言调用的代码至关重要,尤其是当涉及到DLL导出和托管语言之间的交互时。掌握这些类型映射规则有助于开发者更高效地...
以为这篇搜集整理的代码会是很不错的文章,花了一天时间,搜索到最后居然出来一篇叫做"C# 与 C++ 数据类型对照表"的文章.几乎囊括掉和大部分的数据了,太打击我了. 本文中有部分的数据没有测试.也有一些不错的是看了上...
**描述**:“C#中调用C++的DLL文件,DLL,C#,C#与C++类型对照” 在.NET框架中,C#作为一种强大的面向对象编程语言,广泛应用于各种应用场景中。然而,在某些特定情况下,如性能优化或使用现有C++库时,我们需要在C#...
C#的数据类型名称通常更接近其底层的内存表示。 4. **语句终止**:VB.NET使用"End If"、"Next"等语句来结束块,而C#通常依赖大括号{}来定义代码块。 5. **括号与花括号**:VB.NET使用圆括号()来分组操作数,而C#则...
5. **C#(Csharp)调用C++编写的DLL动态链接库方法详解(含实例).pptx**:这是一份PPT教程,详细介绍了C#调用C++Dll的步骤和方法,包括如何定义DllImport特性,处理数据类型映射,以及解决跨语言调用时可能出现的问题...
* 可以与从 Visual Basic、Visual C++、Visual J# 的 .NET 版本或者其他 20 多种符合 CTS 的语言中的任何一种生成的代码进行交互 * 单一程序集可能包含用不同 .NET 语言编写的多个模块,并且类型可以相互引用