c++和c#数据类型转换

  1. //C#调用C ++的DLL搜集整理的所有数据类型转换方式
  2. //c + + :HANDLE(void *) - - - - c#:System . IntPtr
  3. //c + + :Byte(unsigned char) - - - - c#:System . Byte
  4. //c + + :SHORT(short) - - - - c#:System . Int16
  5. //c + + :WORD(unsigned short) - - - - c#:System . UInt16
  6. //c + + :INT(int) - - - - c#:System . Int16
  7. //c + + :INT(int) - - - - c#:System . Int32
  8. //c + + :UINT(unsigned int) - - - - c#:System . UInt16
  9. //c + + :UINT(unsigned int) - - - - c#:System . UInt32
  10. //c + + :LONG(long) - - - - c#:System . Int32
  11. //c + + :ULONG(unsigned long) - - - - c#:System . UInt32
  12. //c + + :DWORD(unsigned long) - - - - c#:System . UInt32
  13. //c + + :DECIMAL - - - - c#:System . Decimal
  14. //c + + :BOOL(long) - - - - c#:System . Boolean
  15. //c + + :CHAR(char) - - - - c#:System . Char
  16. //c + + :LPSTR(char *) - - - - c#:System . String
  17. //c + + :LPWSTR(wchar_t *) - - - - c#:System . String
  18. //c + + :LPCSTR(const char *) - - - - c#:System . String
  19. //c + + :LPCWSTR(const wchar_t *) - - - - c#:System . String
  20. //c + + :PCAHR(char *) - - - - c#:System . String
  21. //c + + :BSTR - - - - c#:System . String
  22. //c + + :FLOAT(float) - - - - c#:System . Single
  23. //c + + :DOUBLE(double) - - - - c#:System . Double
  24. //c + + :VARIANT - - - - c#:System . Object
  25. //c + + :PBYTE(byte *) - - - - c#:System . Byte [ ]
  26. //c + + :WORD - - - - c#:ushort
  27. //c + + :DWORD - - - - c#:uint
  28. //c + + :DWORD - - - - c#:int
  29. //c + + :UCHAR - - - - c#:int
  30. //c + + :UCHAR - - - - c#:byte
  31. //c + + :UCHAR* - - - - c#:string
  32. //c + + :UCHAR* - - - - c#:IntPtr
  33. //c + + :GUID - - - - c#:Guid
  34. //c + + :Handle - - - - c#:IntPtr
  35. //c + + :HWND - - - - c#:IntPtr
  36. //c + + :DWORD - - - - c#:int
  37. //c + + :COLORREF - - - - c#:uint
  38. //c + + :unsigned char - - - - c#:byte
  39. //c + + :unsigned char * - - - - c#:ref byte
  40. //c + + :unsigned char * - - - - c#: [ MarshalAs(UnmanagedType . LPArray) ] byte [ ]
  41. //c + + :unsigned char * - - - - c#: [ MarshalAs(UnmanagedType . LPArray) ] Intptr
  42. //c + + :unsigned char & - - - - c#:ref byte
  43. //c + + :unsigned char 变量名 - - - - c#:byte 变量名
  44. //c + + :unsigned short 变量名 - - - - c#:ushort 变量名
  45. //c + + :unsigned int 变量名 - - - - c#:uint 变量名
  46. //c + + :unsigned long 变量名 - - - - c#:ulong 变量名
  47. //c + + :char 变量名 - - - - c#:byte 变量名 //C + + 中一个字符用一个字节表示 , C#中一个字符用两个字节表示
  48. //c + + :char 数组名 [ 数组大小 ] - - - - c#:MarshalAs(UnmanagedType . ByValTStr , SizeConst = 数组大小) ] public string 数组名; ushort
  49. //c + + :char * - - - - c#:string //传入参数
  50. //c + + :char * - - - - c#:StringBuilder//传出参数
  51. //c + + :char *变量名 - - - - c#:ref string 变量名
  52. //c + + :char *输入变量名 - - - - c#:string 输入变量名
  53. //c + + :char *输出变量名 - - - - c#: [ MarshalAs(UnmanagedType . LPStr) ] StringBuilder 输出变量名
  54. //c + + :char ** - - - - c#:string
  55. //c + + :char **变量名 - - - - c#:ref string 变量名
  56. //c + + :const char * - - - - c#:string
  57. //c + + :char [ ] - - - - c#:string
  58. //c + + :char 变量名 [ 数组大小 ] - - - - c#: [ MarshalAs(UnmanagedType . ByValTStr , SizeConst=数组大小) ] public string 变量名;
  59. //c + + :struct 结构体名 *变量名 - - - - c#:ref 结构体名 变量名
  60. //c + + :委托 变量名 - - - - c#:委托 变量名
  61. //c + + :int - - - - c#:int
  62. //c + + :int - - - - c#:ref int
  63. //c + + :int & - - - - c#:ref int
  64. //c + + :int * - - - - c#:ref int //C#中调用前需定义int 变量名 = 0;
  65. //c + + :*int - - - - c#:IntPtr
  66. //c + + :int32 PIPTR * - - - - c#:int32 [ ]
  67. //c + + :float PIPTR * - - - - c#:float [ ]
  68. //c + + :double** 数组名 - - - - c#:ref double 数组名
  69. //c + + :double* [ ] 数组名 - - - - c#:ref double 数组名
  70. //c + + :long - - - - c#:int
  71. //c + + :ulong - - - - c#:int
  72. //c + + :UINT8 * - - - - c#:ref byte //C#中调用前需定义byte 变量名 = new byte();
  73. //c + + :handle - - - - c#:IntPtr
  74. //c + + :hwnd - - - - c#:IntPtr
  75. //c + + :void * - - - - c#:IntPtr
  76. //c + + :void * user_obj_param - - - - c#:IntPtr user_obj_param
  77. //c + + :void * 对象名称 - - - - c#:( [ MarshalAs(UnmanagedType . AsAny) ] Object 对象名称
  78. //c + + :char , INT8 , SBYTE , CHAR - - - - c#:System . SByte
  79. //c + + :short , short int , INT16 , SHORT - - - - c#:System . Int16
  80. //c + + :int , long , long int , INT32 , LONG32 , BOOL , INT - - - - c#:System . Int32
  81. //c + + :__int64 , INT64 , LONGLONG - - - - c#:System . Int64
  82. //c + + :unsigned char , UINT8 , UCHAR , BYTE - - - - c#:System . Byte
  83. //c + + :unsigned short , UINT16 , USHORT , WORD , ATOM , WCHAR , __wchar_t - - - - c#:System . UInt16
  84. //c + + :unsigned , unsigned int , UINT32 , ULONG32 , DWORD32 , ULONG , DWORD , UINT - - - - c#:System . UInt32
  85. //c + + :unsigned __int64 , UINT64 , DWORDLONG , ULONGLONG - - - - c#:System . UInt64
  86. //c + + :float , FLOAT - - - - c#:System . Single
  87. //c + + :double , long double , DOUBLE - - - - c#:System . Double
  88. //Struct需要在C#里重新定义一个Struct
  89. //CallBack回调函数需要封装在一个委托里,delegate static extern int FunCallBack(string str);
  90. //unsigned char** ppImage替换成IntPtr ppImage
  91. //int& nWidth替换成ref int nWidth
  92. //int* , int& , 则都可用 ref int 对应
  93. //双针指类型参数,可以用 ref IntPtr
  94. //函数指针使用c + + : typedef double (*fun_type1)(double); 对应 c#:public delegate double fun_type1(double);
  95. //char* 的操作c + + : char*; 对应 c#:StringBuilder;
  96. //c#中使用指针:在需要使用指针的地方 unsafe

猜你喜欢

转载自blog.csdn.net/bruce135lee/article/details/80952006