API : INT WINAPI CmdGetFPMBID( UINT8 *nCount, UCHAR *bStream, UINT16 UserID, UINT16 nSize );这样声明可以吗,应该怎么把得到的bstream内容写到XXX.FPM文件上呢,麻烦给个示例,谢谢大家!
/*
* 获取指定用户ID的指纹模板
*
* 参数 UserID 影响到的用户ID
* 参数 nCount 用于存储从设备上实际获取到的用户指纹模板数量的内存地址
* 参数 bStream 用于存储从设备上获取的用户指纹模板数据的存放的起始内存地址
* 参数 nSize 预分配的由bStream涵盖的内存空间可以容纳的用户指纹模板数量, 应不小于设备由UserID 指定的用户的指纹枚数。
* 注意事项 : 一个指纹模板数据需要 512 字节来存储。
*
*/
[DllImport("FFI.dll")]
public static extern int CmdGetFPMBID(ref Byte nCount, Byte[] bStrem, UInt16 UserID, UInt16 nSize);
/*
* 获取指定用户ID的指纹模板
*
* 参数 UserID 影响到的用户ID
* 参数 nCount 用于存储从设备上实际获取到的用户指纹模板数量的内存地址
* 参数 bStream 用于存储从设备上获取的用户指纹模板数据的存放的起始内存地址
* 参数 nSize 预分配的由bStream涵盖的内存空间可以容纳的用户指纹模板数量, 应不小于设备由UserID 指定的用户的指纹枚数。
* 注意事项 : 一个指纹模板数据需要 512 字节来存储。
*
*/
[DllImport("FFI.dll")]
public static extern int CmdGetFPMBID(ref Byte nCount, Byte[] bStrem, UInt16 UserID, UInt16 nSize);
bStream用于存储从设备上获取的用户指纹模板数据的存放的起始内存地址,我觉得返回的值如果转成整形应是类似415211200这样的地址值,您怎么看呀?好像用string不大好这里,要是换成IntPtr怎么给他一个初值呢,这样可以吗 InttPtr bSream = Marshal.AllocHGlobal(512);[DllImport("FFI.dll")]
public static extern int CmdGetFPMBID(ref Byte nCount, ref IntPtr bStrem, UInt16 UserID, UInt16 nSize);