您的位置:首页 > 编程语言 > C语言/C++

C#调用C++函数的注意事项

2013-05-20 12:32 330 查看
最近在开发一个和硬件交互的客户端,开发包是C++写的,客户端要用C#来实现,在开发中遇到一些问题,特记录下来,让自己以后备查。

函数原型
1、函数名称:FPITemplate

2、函数原型

int FPITemplage(int nPort,unsigned char *psMB,int *lpLength)

3、功能说明

用户录入3次指纹,生成指纹模板并上传。

4、入口参数

nPort:设备类型

5、出口参数

psMB:指纹模板 需要分配513字节的缓冲区

lpLength:指纹模板长度 512个字节

[b]C#中定义和调用[/b]
定义DLL的函数

[DllImport("JZTDevDll.dll", EntryPoint = "FPITemplate")]
public static extern int FPITemplate(int nPort,ref byte _psMB,ref int lpLength);


在C#中进行调用

byte[] _psMB =  new byte[513];
int _lpLength = _psMB.Length - 1;
int i = FPITemplate(FPIDevDetect(),ref _psMB[0],ref _lpLength);


这样就可以取到指纹数据。

读取返回到的byte的指纹数据

string FPI_Str = "";
if (i == 0)
{
FPI_Str = System.Text.Encoding.UTF8.GetString(_psMB);
}


希望这个能帮助到园友,大家少走弯路。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: