C++与C#类型对应关系
生活随笔
收集整理的這篇文章主要介紹了
C++与C#类型对应关系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載地址:https://www.cnblogs.com/zhaoxinshanwei/p/4008627.html
//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??? 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的C++与C#类型对应关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FANUC常用CNC诊断数据表
- 下一篇: C# winform中一个类中如何调用另