c++到c#数据类型的转换

c++与c#的类型转换

分类:cSharp | 标签: c#  system  intptr  char  uint

2012-02-29 19:54 阅读(513)评论(0)编辑删除

//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

时间: 2024-10-05 23:40:19

c++到c#数据类型的转换的相关文章

数据类型的转换

数据类型的转换分为俩中:自动类型的转换(小转大),强制类型的转换(大转小) package com.java.chap02; public class Demo05 { public static void main(String[] args) { // 自动类型转换 short s=1; int i; // 自动类型转换,short类型转换成int类型 安全的 i=s; System.out.println("i="+i); // 强制类型转换 double d=1.333; fl

java的数据类型的转换

一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换: <二> 强制转换 <一>.自动转换:就是将小的数据类型自动转换成大的数据类型.如:int与byte计算时,byte(-128~127)自动的转换成int(-2147483648~2147483647)的类型. 0.1.基本数据类型自动转换: byte->short,char -> int -> long float -> double int -> f

从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

最近在ASP.NET MVC中遇到一个问题,如题,在使用EF数据模型的时候,要去添加一条新的数据到Sqlserver数据库,在之前项目中并没有出现该异常,所以去扒了扒demo,发现有几个字段(数据库类型为datetime)savechange的时候默认绑定了datetime.now.问题就在这里,我的新项目并没有给定这几个字段的数据.下面总结下: 触发该错误的条件如下: SQL Server数据库版本中的字段类型为datetime2 数据库中,某个要进行Add或者Edit的字段的数据类型为dat

String数据类型的转换

数据类型转换各种原始数据类型与String类型之间可以通过方法相互转换.valueOf()系列的静态方法用于从其它对象(原始数据类型对象)转换成字符串.例如:public static String valueOf(Booleanb)public static String valueOf(charc)public static String valueOf(inti)public static String valueOf(longl)public static String valueOf(

语言基础:C#输入输出与数据类型及其转换

今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console.Write("这是我的第一个程序");//不换行,(不要漏掉:)(所有的符号全都用英文)(方法,也就是函数后面必须跟括号) Console.WriteLine("第二句");//输出这句后会换行 “这是我的第一个程序”后不换行,紧跟“第二句”,“第二句”换行,光标进入

Java中数据类型的转换

Java中的数据类型在定义时其实就已经确定了,所以是不能随意转换成其它的数据类型的.我们只能在一定程度上对其做类型转换的处理.转换的方式有 “自动类型转换”和“强制类型转换”两种. ①数据类型的自动转换: 假若在程序中定义好数据类型变量以后,又想用另一种数据类型来表示.Java只有在下列的条件都满足的情况下,才会做出数据类型的转换: 1.转换前的数据类型与转换后的类型兼容,也就是说只能是同一种数据类型,要么都是数值型,要么都是字符类型的: 2.转换后的数据类型表示范围比转换前的类型表示的范围大.

JAVA数据类型自动转换,与强制转换

一.数据类型自动转换 public class Test{ public static void main(String[] args){ int a = 1; double b = 1.5; double a_b_count = a+b; //整型与双精度型相加时,结果会自动转换为双精度型 String c = "凌"; char d = '晨'; char e = '好'; String c_d_e_content = c+d+e; //字符型与字符串型相加时,结果会自动转换为字符

day02_变量_基本数据类型_数据类型的转换_Scanner_20150731

回顾: 昨天主要讲了3个方面的内容: 1.Linux 操作系统.开源的.免费 服务器端 目录.挂载点.安全级别高 /:根目录 /home/soft01:主目录/家 2.java开发环境 1).java源文件,经过编译,生成.class字节码文件 JVM加载.class并运行.class 跨平台.一次编程到处使用 2)JVM:java虚拟机 加载并运行.class JRE:java运行环境 除了包含JVM以外还包含运行java程序所需要的必须的环境 JRE=JVM+java系统类库 JDK:jav

Java数据类型的转换

Java数据类型的转换,基本类型的相互转换 1如何将字串 String 转换成整数 int? A. 有2个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 Stri

6.PL_SQL——注释、数据类型的转换、变量的范围和限定词标签

一.PL/SQL块的词法 PL/SQL中可以使用字母.数字.空格和特殊符号等,主要包括: 标识符--变量.关键字.保留字 分隔符--分号,逗号,加号或减号等 常量--字符串,数字,布尔型变量 注释--单行注释.多行注释 编写PL/SQL程序时,需要注意以下两点: 1. 字符和日期必须使用单引号引用,单引号中间可以引用双引号. 2. 数字可以是单独的数字,也可以使科学计数法. 为了养成良好的编程,最好使用tab键对代码进行缩进,有关键字的行回车另起一行,以使程序更加易读,逻辑结构更加清晰. 二.注