2014-02-12 81 views
0

已經過了一個星期,我仍然堅持這個錯誤,我正在使用示例應用程序文件並將其與我的集成。代表無法找到

引發的異常是:(?是否缺少using指令或程序集引用) 「錯誤1類型或命名空間名稱‘功能’找不到

請注意: 當我刪除代碼Function(),此警告在運行時顯示:

「警告2已創建嵌入式互操作程序集'c:\ Program Files \ DigitalPersona \ One Touch SDK.NET \ Bin \ DPFPCtlXTypeLibNET.dll'的參考,因爲通過程序集'c:\ Program Files \ DigitalPersona \ One Touch SDK.NET \ Bin \ DPFPGuiNET.dll'創建的程序集的間接引用。考慮更改任一程序集上的「Embed Interop Types」屬性。 「

這裏是捕獲表格

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中Function()代表的所有其他聲明

+0

編譯時發生錯誤嗎?當你跑步?在哪行代碼?它如何體現自己? – Baldrick

+0

該應用程序是否運行?您可能在輸出目錄中缺少一個依賴dll。 – Jason

+0

不,它不運行,即使我沒有運行應用程序,也會發生錯誤。 –

回答

0

您的delegatenamespace中聲明,您不是using。爲了解決這個問題,就需要

  1. 充分利用delegate公共
  2. 添加using DHELTASSys;指令源文件與Enrollment命名空間。