转载自

C++和C#转换

https://www.cnblogs.com/zjoch/p/4147182.html

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

c#与C++类型转换网摘的更多相关文章

  1. Python入门及容易!网摘分享给大家!

    Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...

  2. Feedly订阅Blog部落格RSS网摘 - Blog透视镜

    网络信息爆炸的时代,如何更有效率地阅读文章,订阅RSS网摘,可以快速地浏览文章标题,当对某些文章有兴趣时,才点下连结连到原网站,阅读更详细的文章,Feedly Reader阅读器除了提供在线版订阅RS ...

  3. Bloglines订阅Blog部落格RSS网摘 - Blog透视镜

    网络信息蓬勃发展,Blog部落格越来越普及,如果逐一地去浏览网站,势必费时费力,倘若信息可以自己送上门,那就可以节省不少时间,就好像看报纸的标题,有兴趣才点连结,进到网站浏览文章内容,Blogline ...

  4. TCP/IP协议头部结构体(网摘小结)(转)

    源:TCP/IP协议头部结构体(网摘小结) TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #de ...

  5. Vim命令快捷键(网摘)

    Vim命令快捷键(网摘) 原文出处:[?---->home]

  6. Delphi 中DataSnap技术网摘

    Delphi2010中DataSnap技术网摘 一.为DataSnap系统服务程序添加描述 这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7 ...

  7. 【网摘】DICOM 基础简介

    一 什么是DICOM?DICOM是Digital Imaging and Communication of Medicine的缩写,是美国放射学会(American College of Radiol ...

  8. 实际举例C#引用类型和值类型的区别<网摘>

    我们都知道,c#的两大数据类型分别为值类型和引用类型.很多人或许闭着眼睛都能说出值类型包括简单类型.结构体类型和枚举类型,引用类型包括自定义类.数组.接口.委托等,但是当被问及到二者之间的联系和区别, ...

  9. PHP 调用微信JS-SDK 开发详解 [网摘]

    一:准备文件,并将文件置于网站根目录下 access_token.json {"access_token":"","expire_time" ...

随机推荐

  1. day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块

    # 多态的理解:# Python 天生自带多态# 鸭子类型 list 和 tuple 就是一对鸭子类型 很像但是没有继承关系## 而其他的类型 上传参数或者打印参数的时候 必须是指定的数据类型# -- ...

  2. linux内核工作队列使用总结

    我总结出的内核工作队列中的4种用法 1. 使用系统的工作队列(不延迟) 1)定义一个工作: struct work_struct my_work; 2)编写一个函数: void my_work_fun ...

  3. python-oop的理解

    OOP是面向对象编程,特征分别是封装.继承.多态.抽象. 封装:封装是指将对象信息状态通过访问权限修饰符隐藏在对象内部,不允许外部程序直接访问,如果外部程序要访问对象内部,可以调用内部提供的get或s ...

  4. 2--Jmeter 4.0--Excel 数据驱动 接口测试

    Excel 模板 通过jmeter的csv data set config 读取 Jmeter注意事项 (1)数据驱动 1..JDBC :SQL 存储在excel中,无法将where条件对应的jmet ...

  5. MAC机下用Terminal操作MySql

    在MAC机上安装好MySql后,在Terminal内运行mysql时会提示mysql command not found命令.这是因为没有把运行时的路径添加到$PATH变量中.检查$PATH变量中是否 ...

  6. 前端笔记 (1.HTML)

    近来一直在学习一些web的知识,主要是包括html,css,js和php,记录一下笔记,希望向和我一样刚学的朋友能提供帮助 这些笔记知识主要来源于菜鸟教程和w3school.我搭建了一个wampSer ...

  7. ArcGIS中的数据连接问题——数据类型不统一

    博主在研究空间数据分布的时候经常会用到 ArcGIS 进行空间数据可视化.但是有时候会由于数据类型不统一而无法将 csv 中的数据连接到底图上.比如在底图中的数据是字符串格式,而 csv 中是数字格式 ...

  8. matlab handle plot

    https://cn.mathworks.com/help/matlab/ref/plotyy.html

  9. 网络流Dinic算法

    我的模板 例题: https://vjudge.net/problem/HDU-4280 struct Edge { int lst; int from; int to; int cap; int f ...

  10. Gym 102091A: Flying Squirrel(RMQ)

    题意:如图,有N个柱子,每次我可以从高柱子X到低柱子Y,而且需要满足中间的柱子都小于X的高度. 思路:现在有Q次询问,每次给定(X,Y),(如果ht[X]<ht[Y],则交换XY),问X为起点, ...