c#涓嶤++綾誨瀷杞崲錛岀綉鎽?011-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 杈撳嚭鍙橀噺鍚?nbsp; ---- c#:StringBuilder 杈撳嚭鍙橀噺鍚?nbsp;
//c++:LPCWSTR ---- c#:IntPtr
//c++:BOOL ---- c#:bool
//c++:HMODULE ---- c#:IntPtr
//c++:HINSTANCE ---- c#:IntPtr
//c++:緇撴瀯浣?nbsp; ---- c#:public struct 緇撴瀯浣搟};
//c++:緇撴瀯浣?**鍙橀噺鍚?nbsp; ---- c#:out 鍙橀噺鍚?nbsp;
//C#涓彁鍓嶇敵鏄庝竴涓粨鏋勪綋瀹炰緥鍖栧悗鐨勫彉閲忓悕
//c++:緇撴瀯浣?&鍙橀噺鍚?nbsp; ---- 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 鍙橀噺鍚?nbsp; ---- c#:byte 鍙橀噺鍚?nbsp;
//c++:unsigned short 鍙橀噺鍚?nbsp; ---- c#:ushort 鍙橀噺鍚?nbsp;
//c++:unsigned int 鍙橀噺鍚?nbsp; ---- c#:uint 鍙橀噺鍚?nbsp;
//c++:unsigned long 鍙橀噺鍚?nbsp; ---- c#:ulong 鍙橀噺鍚?nbsp;
//c++:char 鍙橀噺鍚?nbsp; ---- c#:byte 鍙橀噺鍚?nbsp;
//C++涓竴涓瓧絎︾敤涓涓瓧鑺傝〃紺?C#涓竴涓瓧絎︾敤涓や釜瀛楄妭琛ㄧず
//c++:char 鏁扮粍鍚峓鏁扮粍澶у皬] ---- c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 鏁扮粍澶у皬)]
public string 鏁扮粍鍚? ushort
//c++:char * ---- c#:string //浼犲叆鍙傛暟
//c++:char * ---- c#:StringBuilder
//浼犲嚭鍙傛暟
//c++:char *鍙橀噺鍚?nbsp; ---- c#:ref string 鍙橀噺鍚?nbsp;
//c++:char *杈撳叆鍙橀噺鍚?nbsp; ---- c#:string 杈撳叆鍙橀噺鍚?nbsp;
//c++:char *杈撳嚭鍙橀噺鍚?nbsp; ---- c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 杈撳嚭鍙橀噺鍚?nbsp;
//c++:char ** ---- c#:string
//c++:char **鍙橀噺鍚?nbsp; ---- c#:ref string 鍙橀噺鍚?nbsp;
//c++:const char * ---- c#:string
//c++:char[] ---- c#:string
//c++:char 鍙橀噺鍚峓鏁扮粍澶у皬] ---- c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=鏁扮粍澶у皬)] public string 鍙橀噺鍚?
//c++:struct 緇撴瀯浣撳悕 *鍙橀噺鍚?nbsp; ---- c#:ref 緇撴瀯浣撳悕鍙橀噺鍚?nbsp;
//c++:濮旀墭 鍙橀噺鍚?nbsp; ---- c#:濮旀墭鍙橀噺鍚?nbsp;
//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** 鏁扮粍鍚?nbsp; ---- c#:ref double 鏁扮粍鍚?nbsp;
//c++:double*[] 鏁扮粍鍚?nbsp; ---- c#:ref double 鏁扮粍鍚?nbsp;
//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#閲岄噸鏂板畾涔変竴涓猄truct
//CallBack鍥炶皟鍑芥暟闇瑕佸皝瑁呭湪涓涓鎵橀噷錛宒elegate static extern int FunCallBack(string str);
//unsigned char** ppImage鏇挎崲鎴怚ntPtr ppImage
//int& nWidth鏇挎崲鎴恟ef int nWidth
//int*, int&, 鍒欓兘鍙敤 ref int 瀵瑰簲
//鍙岄拡鎸囩被鍨嬪弬鏁幫紝鍙互鐢?ref IntPtr
//鍑芥暟鎸囬拡浣跨敤c++: typedef double (*fun_type1)(double); 瀵瑰簲 c#:public delegate double fun_type1(double);
//char* 鐨勬搷浣渃++: char*; 瀵瑰簲 c#:StringBuilder;
//c#涓嬌鐢ㄦ寚閽?鍦ㄩ渶瑕佷嬌鐢ㄦ寚閽堢殑鍦版柟 鍔?unsafe
//unsigned char瀵瑰簲public byte

]]>