C#调用dll动态联接库参数对照
最近公司的项目中越来越多的用到了串口设备,很多设备商家提供了二次开发包,多是用C,C++封装的dll的动态联接库。用C#进行调用的时间有关参数方面遇到了不少的困难。所以为了方便在这里我做一下我用的一些函数传参类型的整理
//C++函数原形:
int ReadID15693(HANDLE hComm, int nAddr, BOOL bIsMultiTag, unsigned char *ucDataID, int* nIDCnt);
//C# 封装写法
[DllImport("LHR900.dll")]
public static extern int ReadID15693(int hComm, int nAddr, bool bIsMultiTag, byte[] ucDataID, int nIDCnt);
C# 数据类型
//C++函数原形:
int ReadID15693(HANDLE hComm, int nAddr, BOOL bIsMultiTag, unsigned char *ucDataID, int* nIDCnt);
//C# 封装写法
[DllImport("LHR900.dll")]
public static extern int ReadID15693(int hComm, int nAddr, bool bIsMultiTag, byte[] ucDataID, int nIDCnt);| 
 API与C#的数据类型对应关系表  | |||||
| API数据类型 | 类型描述 | C#类型 | API数据类型 | 类型描述 | C#类型 | 
| WORD | 16位无符号整数 | ushort | CHAR | 字符 | char | 
| LONG | 32位无符号整数 | int | DWORDLONG | 64位长整数 | long | 
| DWORD | 32位无符号整数 | uint | HDC | 设备描述表句柄 | int | 
| HANDLE | 句柄,32位整数 | int | HGDIOBJ | GDI对象句柄 | int | 
| UINT | 32位无符号整数 | uint | HINSTANCE | 实例句柄 | int | 
| BOOL | 32位布尔型整数 | bool | HWM | 窗口句柄 | int | 
| LPSTR | 指向字符的32位指针 | string | HPARAM | 32位消息参数 | int | 
| LPCSTR | 指向常字符的32位指针 | String | LPARAM | 32位消息参数 | int | 
| BYTE | 字节 | byte | WPARAM | 32位消息参数 | int | 
C# 数据类型
| 
 简单类型  | 
 描 述  | 
 示 例  | 
| sbyte | 8-bit 有符号整数 | sbyte val = 12; | 
| short | 16-bit 有符号整数 | short val = 12; | 
| int | 32-bit有符号整数 | int val = 12; | 
| long | 64-bit有符号整数 | long val1 = 12; long val2 = 34L; | 
| byte | 8-bit无符号整数 | byte val1 = 12; byte val2 = 34U; | 
| ushort | 16-bit 无符号整数 | ushort val1 = 12; ushort val2 = 34U; | 
| uint | 32-bit 无符号整数 | uint val1 = 12; uint val2 = 34U; | 
| ulong | 64-bit 无符号整数 | ulong val1 = 12; ulong val2 = 34U; ulong val3 = 56L; ulong val4=78UL; | 
| float | 32-bit单精度浮点数 | float val = 1.23F; | 
| double | 64-bit双精度浮点数 | double val1 = 1.23; double val2 = 4.56D; | 
| bool | 布尔类型 | bool val1 = true; bool val2 = false; | 
| char | 字符类型 ,Unicode编码 | char val = 'h'; | 
| decimal | 28个有效数字的128-bit十进制类型 | decimal val = 1.23M; | 
                    
                
                
            
        
浙公网安备 33010602011771号