IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C#与C++数据类型转换 -> 正文阅读

[数据结构与算法]C#与C++数据类型转换

c++:HANDLE(void *)           ---- c#:System.IntPtr 
c++:Byte(unsigned char)      ---- c#:System.Byte 
c++:SHORT(short)             ---- c#:System.Int16 
c++:WORD(unsigned short)     ---- c#:System.UInt16 
c++:INT(int)                 ---- c#:System.Int16
c++:INT(int)                 ---- c#:System.Int32 
c++:UINT(unsigned int)       ---- c#:System.UInt16
c++:UINT(unsigned int)       ---- c#:System.UInt32
c++:LONG(long)               ---- c#:System.Int32 
c++:ULONG(unsigned long)     ---- c#:System.UInt32 
c++:DWORD(unsigned long)     ---- c#:System.UInt32 
c++:DECIMAL                  ---- c#:System.Decimal 
c++:BOOL(long)               ---- c#:System.Boolean
c++:CHAR(char)               ---- c#:System.Char 
c++:LPSTR(char *)            ---- c#:System.String 
c++:LPWSTR(wchar_t *)        ---- c#:System.String 
c++:LPCSTR(const char *)     ---- c#:System.String 
c++:LPCWSTR(const wchar_t *) ---- c#:System.String 
c++:PCAHR(char *)            ---- c#:System.String 
c++:BSTR                     ---- c#:System.String 
c++:FLOAT(float)             ---- c#:System.Single 
c++:DOUBLE(double)           ---- c#:System.Double 
c++:VARIANT                  ---- c#:System.Object 
c++:PBYTE(byte *)            ---- c#:System.Byte[] 
c++:BSTR                     ---- c#:StringBuilder
c++:LPCTSTR                  ---- c#:StringBuilder
c++:LPCTSTR                  ---- c#:string
c++:LPTSTR                   ---- c#:[MarshalAs(UnmanagedType.LPTStr)] string 
c++:LPTSTR 输出变量名         ---- c#:StringBuilder 输出变量名
c++:LPCWSTR                  ---- c#:IntPtr
c++:BOOL                     ---- c#:bool  
c++:HMODULE                  ---- c#:IntPtr  
c++:HINSTANCE                ---- c#:IntPtr 
c++:结构体                   ---- c#:public struct 结构体{}; 
c++:结构体 **变量名           ---- c#:out 变量名 //C#中提前申明一个结构体实例化后的变量名
c++:结构体 &变量名            ---- c#:ref 结构体 变量名
c++:WORD                     ---- c#:ushort
c++:DWORD                    ---- c#:uint
c++:DWORD                    ---- c#:int
c++:UCHAR                    ---- c#:int
c++:UCHAR                    ---- c#:byte
c++:UCHAR*                   ---- c#:string
c++:UCHAR*                   ---- c#:IntPtr
c++:GUID                     ---- c#:Guid
c++:Handle                   ---- c#:IntPtr
c++:HWND                     ---- c#:IntPtr
c++:DWORD                    ---- c#:int
c++:COLORREF                 ---- c#:uint
c++:unsigned char            ---- c#:byte
c++:unsigned char *          ---- c#:ref byte
c++:unsigned char *          ---- c#:[MarshalAs(UnmanagedType.LPArray)] byte[]
c++:unsigned char *          ---- c#:[MarshalAs(UnmanagedType.LPArray)] Intptr
c++:unsigned char &          ---- c#:ref byte
c++:unsigned char 变量名      ---- c#:byte 变量名
c++:unsigned short 变量名     ---- c#:ushort 变量名
c++:unsigned int 变量名       ---- c#:uint 变量名
c++:unsigned long 变量名      ---- c#:ulong 变量名
c++:char 变量名               ---- c#:byte 变量名 //C++中一个字符用一个字节表示,C#中一个字符用两个字节表示
c++:char 数组名[数组大小]      ---- c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 数组大小)] public string 数组名; ushort
c++:char *                   ---- c#:string //传入参数
c++:char *                   ---- c#:StringBuilder//传出参数
c++:char *变量名              ---- c#:ref string 变量名
c++:char *输入变量名          ---- c#:string 输入变量名
c++:char *输出变量名          ---- c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 输出变量名
c++:char **                  ---- c#:string
c++:char **变量名            ---- c#:ref string 变量名
c++:const char *            ---- c#:string
c++:char[]                  ---- c#:string
c++:char 变量名[数组大小]    ---- c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=数组大小)] public string 变量名; 
c++:struct 结构体名 *变量名  ---- c#:ref 结构体名 变量名
c++:委托 变量名              ---- c#:委托 变量名
c++:int                     ---- c#:int
c++:int                     ---- c#:ref int
c++:int &                   ---- c#:ref int
c++:int *                   ---- c#:ref int //C#中调用前需定义int 变量名 = 0;
c++:*int                    ---- c#:IntPtr
c++:int32 PIPTR *           ---- c#:int32[]
c++:float PIPTR *           ---- c#:float[]
c++:double** 数组名         ---- c#:ref double 数组名
c++:double*[] 数组名        ---- c#:ref double 数组名
c++:long                   ---- c#:int
c++:ulong                  ---- c#:int
c++:UINT8 *                ---- c#:ref byte //C#中调用前需定义byte 变量名 = new byte();  
c++:handle                 ---- c#:IntPtr
c++:hwnd                   ---- c#:IntPtr
c++:void *                 ---- c#:IntPtr  
c++:void * user_obj_param  ---- c#:IntPtr user_obj_param
c++:void * 对象名称         ---- c#:([MarshalAs(UnmanagedType.AsAny)]Object 对象名称
c++:char, INT8, SBYTE, CHAR---- c#:System.SByte  
c++:short, short int, INT16, SHORT ---- c#:System.Int16  
c++:int, long, long int, INT32, LONG32, BOOL , INT ---- c#:System.Int32  
c++:__int64, INT64, LONGLONG ---- c#:System.Int64  
c++:unsigned char, UINT8, UCHAR , BYTE ---- c#:System.Byte  
c++:unsigned short, UINT16, USHORT, WORD, ATOM, WCHAR , __wchar_t ---- c#:System.UInt16  
c++:unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT ---- c#:System.UInt32  
c++:unsigned __int64, UINT64, DWORDLONG, ULONGLONG ---- c#:System.UInt64  
c++:float, FLOAT ---- c#:System.Single  
c++:double, long double, DOUBLE ---- c#:System.Double  
Win32 Types ---- CLR Type  
Struct需要在C#里重新定义一个Struct
CallBack回调函数需要封装在一个委托里,delegate static extern int FunCallBack(string str);
unsigned char** ppImage替换成IntPtr ppImage
int& nWidth替换成ref int nWidth
int*, int&, 则都可用 ref int 对应
双针指类型参数,可以用 ref IntPtr
函数指针使用c++: typedef double (*fun_type1)(double); 对应 c#:public delegate double fun_type1(double);
char* 的操作c++: char*; 对应 c#:StringBuilder;
c#中使用指针:在需要使用指针的地方 加 unsafe
unsigned char对应public byte
typedef void (*CALLBACKFUN1W)(wchar_t*, void* pArg);
typedef void (*CALLBACKFUN1A)(char*, void* pArg);
bool BIOPRINT_SENSOR_API dllFun1(CALLBACKFUN1 pCallbackFun1, void* pArg);
调用方式为
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void CallbackFunc1([MarshalAs(UnmanagedType.LPWStr)] StringBuilder strName, IntPtr pArg);

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:31:56  更:2022-04-27 11:32:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:53:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码