//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 = 数组大小)]        
   
//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. 【.net 深呼吸】细说CodeDom(5):类型成员

    前文中,老周已经厚着脸皮介绍了类型的声明,类型里面包含的自然就是类型成员了,故,顺着这个思路,今天咱们就了解一下如何向类型添加成员. 咱们都知道,常见的类型成员,比如字段.属性.方法.事件.表示代码成 ...

  2. 【.net 深呼吸】细说CodeDom(4):类型定义

    上一篇文章中说了命名空间,你猜猜接下来该说啥.是了,命名空间下面就是类型,知道了如何生成命名空间的定义代码,之后就该学会如何声明类型了. CLR的类型通常有这么几种:类.接口.结构.枚举.委托.是这么 ...

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

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

  4. [C#] async 的三大返回类型

    async 的三大返回类型 序 博主简单数了下自己发布过的异步文章,已经断断续续 8 篇了,这次我想以 async 的返回类型为例,单独谈谈. 异步方法具有三个可让开发人员选择的返回类型:Task&l ...

  5. C# - 值类型、引用类型&走出误区,容易错误的说法

    1. 值类型与引用类型小总结 1)对于引用类型的表达式(如一个变量),它的值是一个引用,而非对象. 2)引用就像URL,是允许你访问真实信息的一小片数据. 3)对于值类型的表达式,它的值是实际的数据. ...

  6. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)

    本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...

  7. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  8. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  9. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  10. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

随机推荐

  1. [xUnix 开发环境--01] MAMP mac os 10.10 配置经历、要点——01. phpmyadmin连不上

    Mac OS 10.10已经自带了apache2和php(php的路径我至今还没不知道,太懒没去找) 用brew安装mysql, 在官网上下载了phpmyadmin,按官方方式配置完后,登录不上,也不 ...

  2. 如何寻找google公司主导的开源项目

    在googlecode页面的搜索框中:搜索 label:google ,结果列表中就会显示所有开源软件列表.或者直接点击这个连接:http://code.google.com/hosting/sear ...

  3. shell 括号学习

    http://blog.csdn.net/tttyd/article/details/11742241 http://tldp.org/LDP/abs/html/loops1.html

  4. Android Studio 学习 - 基本控件的使用;Intent初学

    Android Studio学习第三天. 今天主要学习 1. RadioButton.CheckBox.RatingBar.SeekBar等基础控件的使用. 结合Delphi中相类似的控件,在这些基本 ...

  5. Heritrix源码分析(七) Heritrix总体介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/642794         本博客已迁移到本人独立博客: http://www.yun ...

  6. Android Window 9问9答

    1.简述一下window是什么?在android体系里 扮演什么角色? 答:window就是一个抽象类,他的实现类是phoneWindow.我们一般通过windowManager 来访问window. ...

  7. Android数据库一些源码分析

    对于批量数据插入这种最常见的情况来说,我们来看两种实现方式(两种都用了事务). 下面这种应该是最多人使用的插入数据的方法: public long addByExec(List<Person&g ...

  8. Readonly与const初识

    对于readonly和const,很多人无法具体区分,不清楚它们的具体使用场合:现在我们分析它们之间的区别和使用场合. const是一个编译期常量:const只能用于修饰基元类型.枚举类型或者字符串类 ...

  9. AJAX overrideMimeType作用

    我们经常在AJAX代码中发现如下代码:   if (http_request.overrideMimeType) {    http_request.overrideMimeType("te ...

  10. Effective java笔记8--序列化

    对象的序列化(object serialization)API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象. 一.谨慎地实现Serializable     要想使一 ...