//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. [原创] - C#编程大幅提高OUTLOOK的邮件搜索能力!

    使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题成了一件非常紧迫的事情. 利用MS Search当然可以, 但是它太 ...

  2. HDU 3555 Bomb (数位DP-记忆化搜索模板)

    题意 求区间[1,n]内含有相邻49的数. 思路 比较简单的按位DP思路.这是第一次学习记忆化搜索式的数位DP,确实比递推形式的更好理解呐,而且也更通用~可以一般化: [数位DP模板总结] int d ...

  3. 分布式网站架构后续:zookeeper技术浅析

    Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用 越来越多.今天我想谈谈zookeeper,本文不谈如何使用z ...

  4. modeler与activiti进行整合

    整合Activiti Modeler到业务系统(或BPM平台) http://www.kafeitu.me/activiti/2013/03/10/integrate-activiti-modeler ...

  5. 学习java之HashMap和TreeMap

    HashMap和TreeMap是Map接口的两种实现,ArrayDeque和LinkedList是Queue接口的两种实现方式.下面的代码是我今天学习这四个数据结构之后写的.还是不熟悉,TreeMap ...

  6. a标签包input引起的问题

    最近公司中的一个项目中,有一个同事跟我说,他写的输入框不能选中输入内容了,并且光标也不能插入到已写好的文字其他位置. 简化了一下他的代码结构,如下: <a href="javascri ...

  7. 虚拟机下Linux系统安装vmtool工具

    1.启动此虚拟机2.用超级用户root登录3.登录成功后,Ctrl+Alt ,取出鼠标,点选菜单栏,虚拟机 →安装VMware工具 → Install4.待虚拟系统挂载了光盘后,弹出cdrom文件夹或 ...

  8. Linux/Unix shell 脚本中调用SQL,RMAN脚本

    Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...

  9. Java Observable 模式

    一.Observer模式的意图: 在对象的内部状态发生变化时,自动通知外部对象进行响应. 二.Observer模式的构成: ·被观察者:内部状态有可能被改变,而且又需要通知外部的对象 ·观察者:需要对 ...

  10. 构建通过 Database.com 提供技术支持的 PhoneGap 应用程序

    要求 其他必要产品 Database.com account 用户级别 全部 必需产品 PhoneGap Build 范例文件 Database.Com-PhoneGap-Sample 在这篇文章中, ...