c#-7.0 - 找不到 sgfplib.dll
问题描述
我试图通过我的 C# 代码捕获指纹。我已经参考了 secugen FDx Pro SDK for windows version 2.3.3.0 并安装了驱动程序。虽然我在其他 dll 文件中看不到 sgfplib.dll。
当我运行代码尝试初始化使用 sgfplib.dll 的 SGFingerPrintManager 时,它抱怨“找不到 sgfplib.dll”我已经阅读了该平台上的先前建议,但没有解决问题。
请提前感谢任何解决此问题的建议。
提前致谢。
a) 我已下载 FDx Pro SDK for windows 和 secugen 驱动程序版本 6.7 (64)。b) 另外,我尝试将 sgfplid.dll 复制到我的项目的 bin 文件夹中,但问题仍然存在。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using LuggageTrackingAndBillingSystem.models;
using SecuGen.FDxSDKPro.Windows;
namespace LuggageTrackingAndBillingSystem
{
public partial class TsetForSecugen : Form
{
Int32 image_width = 200;
Int32 image_height = 300;
Int32 image_dpi = 500;
public TsetForSecugen()
{
InitializeComponent();
InitializeDedive();
}
private SGFingerPrintManager m_FPM;
SGFPMDeviceName device_name = SGFPMDeviceName.DEV_FDU03;
private void InitializeDedive()
{
//Step 1
if (RuntimePolicyHelper.LegacyV2RuntimeEnabledSuccessfully)
{
// This will load a CLR 2 mixed mode assembly
m_FPM = new SGFingerPrintManager();
}
var err = m_FPM.InitEx(image_width, image_height, image_dpi);
}
private void DrawImage(Byte[] imgData, PictureBox picBox)
{
int colorval;
Bitmap bmp = new Bitmap(image_width, image_height);
picBox.Image = (Image)bmp;
for (int i = 0; i < bmp.Width; i++)
{
for (int j = 0; j < bmp.Height; j++)
{
colorval = (int)imgData[(j * image_width) + i];
bmp.SetPixel(i, j, Color.FromArgb(colorval, colorval, colorval));
}
}
picBox.Refresh();
}
private void GetImage()
{
//Capturing Finger Image Step 3
Byte[] fp_image = new Byte[image_width * image_height];
Int32 iError;
iError = m_FPM.GetImage(fp_image);
if (iError == (Int32)SGFPMError.ERROR_NONE)
{
DrawImage(fp_image, pictureBox1);
}
}
private void TsetForSecugen_Load(object sender, EventArgs e)
{
InitializeDedive();
GetDevieInfo();
}
private void GetDevieInfo()
{
#region Det Device Info step 2
//Get Device info
SGFPMDeviceInfoParam pInfo = new SGFPMDeviceInfoParam();
pInfo = new SGFPMDeviceInfoParam();
Int32 iError = m_FPM.GetDeviceInfo(pInfo);
if (iError == (Int32)SGFPMError.ERROR_NONE)
{
image_width = pInfo.ImageWidth;
image_height = pInfo.ImageHeight;
}
#endregion
}
private void button1_Click(object sender, EventArgs e)
{
GetImage();
}
}
}
实际结果:预期结果是能够抓到指纹
错误测量:标头[FDx SDK Pro.NET]。正文[找不到 sgfplib.dll]
解决方案
我已经通过获取并安装了 FDx SDK Pro for windows 的可执行文件解决了这个问题。
该问题是由于 FDx SDK Pro For windows 在安装过程中无法看到自动安装在 windows/System32 和 Windows/sysWOW64 目录中的 sgfplib.dll 文件引起的。
谢谢大家。
推荐阅读
- flutter - 颤振:用定位的孩子将容器包裹在堆栈周围
- firebase - 颤振:信息:“等待”应用于“远程配置”,这不是“未来”
- python - 如何使用 ETag 更新 Azure 表存储实体
- reactjs - Next.js:导航到新路线时更新导航栏组件
- json - laravel 自定义 api 资源关系
- audio - 为什么蓝牙扬声器不音量某些按钮?
- reactjs - 条件数组映射错误中的唯一键
- reactjs - react-select isSelected prop 在计算样式时有效,但在传递给 formatOptionLabel 时始终为 false
- html - HTML/CSS - 如何在此特定设置中将(输入)单选按钮移动到左侧?
- django - 我可以将 django orm 与未使用 django 设置的数据库一起使用吗