C# 找不到委托
已经一个星期了,我仍然被这个错误所困扰,我正在使用示例应用程序文件并将其与我的文件集成 引发的异常如下: 错误1找不到类型或命名空间名称“Function”是否缺少using指令或程序集引用 注意: 当我删除委托函数时,在运行时出现以下警告: 警告2创建了对嵌入式互操作程序集“c:\Program Files\DigitalPersona\One Touch SDK.NET\Bin\DPFPCtlXTypeLibNET.dll”的引用,因为程序集“c:\Program Files\DigitalPersona\One Touch SDK.NET\Bin\DPFPGuiNET.dll”创建了对该程序集的间接引用。考虑在任一程序集上更改“嵌入互操作类型”属性。 这是捕获表C# 找不到委托,c#,delegates,fingerprint,C#,Delegates,Fingerprint,已经一个星期了,我仍然被这个错误所困扰,我正在使用示例应用程序文件并将其与我的文件集成 引发的异常如下: 错误1找不到类型或命名空间名称“Function”是否缺少using指令或程序集引用 注意: 当我删除委托函数时,在运行时出现以下警告: 警告2创建了对嵌入式互操作程序集“c:\Program Files\DigitalPersona\One Touch SDK.NET\Bin\DPFPCtlXTypeLibNET.dll”的引用,因为程序集“c:\Program Files\Digital
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Enrollment
{
/* NOTE: This form is a base for the EnrollmentForm and the VerificationForm,
All changes in the CaptureForm will be reflected in all its derived forms.
*/
public partial class CaptureForm : Form, DPFP.Capture.EventHandler
{
public CaptureForm()
{
InitializeComponent();
}
protected virtual void Init()
{
try
{
Capturer = new DPFP.Capture.Capture(); // Create a capture operation.
if ( null != Capturer )
Capturer.EventHandler = this; // Subscribe for capturing events.
else
SetPrompt("Can't initiate capture operation!");
}
catch
{
MessageBox.Show("Can't initiate capture operation!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
protected virtual void Process(DPFP.Sample Sample)
{
// Draw fingerprint sample image.
DrawPicture(ConvertSampleToBitmap(Sample));
}
protected void Start()
{
if (null != Capturer)
{
try
{
Capturer.StartCapture();
SetPrompt("Using the fingerprint reader, scan your fingerprint.");
}
catch
{
SetPrompt("Can't initiate capture!");
}
}
}
protected void Stop()
{
if (null != Capturer)
{
try
{
Capturer.StopCapture();
}
catch
{
SetPrompt("Can't terminate capture!");
}
}
}
#region Form Event Handlers:
private void CaptureForm_Load(object sender, EventArgs e)
{
Init();
Start(); // Start capture operation.
}
private void CaptureForm_FormClosed(object sender, FormClosedEventArgs e)
{
Stop();
}
#endregion
#region EventHandler Members:
public void OnComplete(object Capture, string ReaderSerialNumber, DPFP.Sample Sample)
{
MakeReport("The fingerprint sample was captured.");
SetPrompt("Scan the same fingerprint again.");
Process(Sample);
}
public void OnFingerGone(object Capture, string ReaderSerialNumber)
{
MakeReport("The finger was removed from the fingerprint reader.");
}
public void OnFingerTouch(object Capture, string ReaderSerialNumber)
{
MakeReport("The fingerprint reader was touched.");
}
public void OnReaderConnect(object Capture, string ReaderSerialNumber)
{
MakeReport("The fingerprint reader was connected.");
}
public void OnReaderDisconnect(object Capture, string ReaderSerialNumber)
{
MakeReport("The fingerprint reader was disconnected.");
}
public void OnSampleQuality(object Capture, string ReaderSerialNumber, DPFP.Capture.CaptureFeedback CaptureFeedback)
{
if (CaptureFeedback == DPFP.Capture.CaptureFeedback.Good)
MakeReport("The quality of the fingerprint sample is good.");
else
MakeReport("The quality of the fingerprint sample is poor.");
}
#endregion
protected Bitmap ConvertSampleToBitmap(DPFP.Sample Sample)
{
DPFP.Capture.SampleConversion Convertor = new DPFP.Capture.SampleConversion(); // Create a sample convertor.
Bitmap bitmap = null; // TODO: the size doesn't matter
Convertor.ConvertToPicture(Sample, ref bitmap); // TODO: return bitmap as a result
return bitmap;
}
protected DPFP.FeatureSet ExtractFeatures(DPFP.Sample Sample, DPFP.Processing.DataPurpose Purpose)
{
DPFP.Processing.FeatureExtraction Extractor = new DPFP.Processing.FeatureExtraction(); // Create a feature extractor
DPFP.Capture.CaptureFeedback feedback = DPFP.Capture.CaptureFeedback.None;
DPFP.FeatureSet features = new DPFP.FeatureSet();
Extractor.CreateFeatureSet(Sample, Purpose, ref feedback, ref features); // TODO: return features as a result?
if (feedback == DPFP.Capture.CaptureFeedback.Good)
return features;
else
return null;
}
protected void SetStatus(string status)
{
this.Invoke(
new Function(delegate() {
StatusLine.Text = status;
}));
}
protected void SetPrompt(string prompt)
{
this.Invoke(new Function(delegate() {
Prompt.Text = prompt;
}));
}
protected void MakeReport(string message)
{
this.Invoke(new Function(delegate() {
StatusText.AppendText(message + "\r\n");
}));
}
private void DrawPicture(Bitmap bitmap)
{
this.Invoke(new Function(delegate() {
Picture.Image = new Bitmap(bitmap, Picture.Size); // fit the image into the picture box
}));
}
private DPFP.Capture.Capture Capturer;
}
}
这是我正在做的表格
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 System.IO;
using Enrollment;
//imports
using DHELTASSys.AuditTrail;
namespace DHELTASSys
{
delegate void Function();
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DHELTASSysAuditTrail daa = new DHELTASSysAuditTrail();
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void txtPrimaryNumber_TextChanged(object sender, EventArgs e)
{
}
private void txtCity_TextChanged(object sender, EventArgs e)
{
}
private void txtAlternativeNumber_TextChanged(object sender, EventArgs e)
{
}
private void txtSSSNumber_TextChanged_1(object sender, EventArgs e)
{
}
private void txtPhilhealthNumber_TextChanged(object sender, EventArgs e)
{
}
private void dtpBirthdate_ValueChanged(object sender, EventArgs e)
{
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
EnrollmentForm Enroller = new EnrollmentForm();
Enroller.OnTemplate += this.OnTemplate;
Enroller.ShowDialog();
}
private void OnTemplate(DPFP.Template template)
{
this.Invoke(new Function(delegate()
{
Template = template;
btnSave.Enabled = (Template != null);
if (Template != null)
MessageBox.Show("The fingerprint template is ready for saving.", "Fingerprint Enrollment");
else
MessageBox.Show("The fingerprint template is not valid. Repeat fingerprint enrollment.", "Fingerprint Enrollment");
}));
}
private DPFP.Template Template;
}
}
我仍然找不到如何解决这个问题,因为我查看了Digital Persona提供的示例代码,我仍然找不到哪里做错了
protected void SetStatus(string status)
{
this.Invoke(
new Function(delegate() {
StatusLine.Text = status;
}));
}
这就是错误指出的部分。不仅是CaptureForm.cs中函数委托的该部分声明,而且还有其他所有声明。您的委托在未使用的命名空间中声明。要解决此问题,您需要
公开委托人
使用DHELTASSys添加一个;指向具有注册命名空间的源文件的指令。
编译时是否会发生错误?你什么时候跑步?在哪一行代码上?它是如何表现出来的?应用程序是否运行?您的输出目录中可能缺少一个依赖dll。不,它没有运行,即使我没有运行应用程序,错误也会发生。您能指出触发错误的行吗?指出错误@StevenLiekens