c#与C++类型转换,网摘2011-12-08 8:33//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. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  3. ASP.NET_各个币种之间的汇率转换(实时)使用Yahoo汇率。

    近期开发支付平台的时候有运用到各国的实时汇率之间的转换问题,于是在往上找了很多相关资料,以下就是一些参考网址: 1.提供API接口的网站:https://www.showapi.com:这个网站有提供 ...

  4. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  5. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  6. Android中手机录屏并转换GIF的两种方式

    之前在博文中为了更好的给大家演示APP的实现效果,本人了解学习了几种给手机录屏的方法,今天就给大家介绍两种我个人用的比较舒服的两种方法: (1)配置adb环境后,使用cmd命令将手机界面操作演示存为视 ...

  7. React的使用与JSX的转换

    前置技能:Chrome浏览器   一.拿糖:React的使用 React v0.14 RC 发布,主要更新项目: 两个包: React 和 React DOM DOM node refs 无状态的功能 ...

  8. WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体

    最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[] ...

  9. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  10. Oracle学习之路-- 案例分析实现行列转换的几种方式

    注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构. 通过一个例子来说明行列转换: 需求:查询每个部门中各个职位的总工资 按我们最原始的思路可能会这么写:       ...

随机推荐

  1. Codeforces Round #449 (Div. 1)C - Willem, Chtholly and Seniorious

    ODT(主要特征就是推平一段区间) 其实就是用set来维护三元组,因为数据随机所以可以证明复杂度不超过O(NlogN),其他的都是暴力维护 主要操作是split,把区间分成两个,用lowerbound ...

  2. BZOJ-1010 玩具装箱toy (斜率优化)

    题目大意:将n个数分成若干组,并且每组的数在原数组中应是连续的,每组会产生的代价为sum(i)-sum(j)+i-j-1-m,m为已知的常数.求最小代价. 题目分析:定义dp(i)表示将前 i 个元素 ...

  3. HDOJ1003

    #include<iostream> using namespace std; int main() { ],t=,m; cin >> n; while(n--) { cin ...

  4. Centos7 docker 常用指令

    Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上 一.docker的安装及卸载 1.查看当前系统内核版本: [root@docker ~]# uname - ...

  5. spring cloud 学习(二)关于 Eureka 的学习笔记

    关于 Eureka 的学习笔记 个人博客地址 : https://zggdczfr.cn/ ,欢迎光临~ 前言 Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务.Sprin ...

  6. 深入理解BootStrap Item1-- 列表组(list-group)

    class=”pull-right”:右对齐下拉菜单 list-group-item:列表组,控制列表,以及添加列表徽章 1.列表组 列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单 ...

  7. Excel根据人名匹配得到编号

    操作步骤:输入公式 =IF(COUNTIF($E$2:$E2,$E2)>COUNTIF($B:$B,$E2),"",INDEX(C:C,SMALL(IF($B$1:$B$10 ...

  8. linux 简单常用命令

    kill -3 pid就是发送信号3也就是SIGQUIT给进程pid.kill -9 就是发信号9也就是SIGKILL. pwd: 打印当前工作目录ls:默认显示当前工作目录内容cd:改变当前工作目录 ...

  9. Android输入法框架系统(下)

    程序焦点获取事件导致输入法显示 从上面可以知道程序获得焦点时,程序端会先间接的调用IMMS的startInput将焦点View绑定到输入法,然后会调用IMMS的windowGainFocus函数,这个 ...

  10. python3:jsonpath-rw处理Json对象

    前提:接口自动化测试中,存在依赖情况:test_02的某个请求参数的值,需要依赖test_01返回结果中某个字段的数据,所以就先需要拿到返回数据中特定字段的值.这里使用到python中jsonpath ...