C# 找不到委托

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

已经一个星期了,我仍然被这个错误所困扰,我正在使用示例应用程序文件并将其与我的文件集成

引发的异常如下: 错误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”创建了对该程序集的间接引用。考虑在任一程序集上更改“嵌入互操作类型”属性。

这是捕获表

    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