类型 非托管C 语言类型 托管类名 说明
HANDLE void* System.IntPtr 32 位
BYTE unsigned char System.Byte 8 位
SHORT short System.Int16 16 位
WORD unsigned short System.UInt16 16 位
INT int System.Int32 32 位
UINT unsigned int System.UInt32 32 位
LONG long System.Int32 32 位
BOOL long System.Int32 32 位
DWORD unsigned long System.UInt32 32 位
ULONG unsigned long System.UInt32 32 位
CHAR char System.Char 用ANSI 修饰。
LPSTR char* System.String 或System.StringBuilder 用ANSI 修饰。
LPCSTR Const char* System.String 或System.StringBuilder 用ANSI 修饰。
LPWSTR wchar_t* System.String 或System.StringBuilder 用Unicode 修饰。
LPCWSTR Const wchar_t* System.String 或System.StringBuilder 用Unicode 修饰。
FLOAT Float System.Single 32 位
DOUBLE Double System.Double 64 位
C/C++中的结构类型数据在C#下的转换
在做硬件对接开发的时候,会碰到SDK接口数据类型的转换,而我这一次碰到的是C/C++中的结构怎样转换到C#。
例如我们在C/C++下的结构数据如下:
typedef struct
{
char sLibName[ 256 ];
char sPathToLibrary[ 256 ];
INT32 iEntries;
INT32 iUsed;
UINT16 iSort;