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

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

函数原型

 

1、函数名称:FPITemplate

2、函数原型

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

3、功能说明

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

4、入口参数

    nPort:设备类型

5、出口参数

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

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

C#中定义和调用

 

定义DLL的函数
       

1         [DllImport("JZTDevDll.dll", EntryPoint = "FPITemplate")]
2         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);
             }

希望这个能帮助到园友,大家少走弯路。

转载于:https://www.cnblogs.com/3d-soft/archive/2013/05/20/3088358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值