0

ドキュメントをスキャンして PictureBox に配置する C# Winforms でアプリケーションを作成していますが、スキャンしようとすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外がスローされ、続行できません。スタック トレースは次のとおりです。

明確にするために、これは誰かがクラス名のいくつかに驚かされた場合の作業プロジェクトです。

AbDesktop.exe!AbDesktop.FrmCreditCards.ScanSetup() Line 39  C#
    AbDesktop.exe!AbDesktop.FrmCreditCards.ScanFrontBtn_Click(object sender, System.EventArgs e) Line 94 + 0x8 bytes    C#
    [External Code] 
    AbDesktop.exe!AbDesktop.Program.Main(string[] args) Line 26 + 0x20 bytes    C#
    [External Code] 

これが問題の原因となっているコードです。

 public void ScanSetup()
 {
     WIA.CommonDialog dialog = new WIA.CommonDialog();
     ImageFile scannedImage=null;

     scannedImage = dialog.ShowAcquireImage(
         WiaDeviceType.ScannerDeviceType,
         WiaImageIntent.UnspecifiedIntent,
         WiaImageBias.MaximizeQuality,
         FormatID.wiaFormatPNG,
         true, true, false);
     scannedImage.SaveFile("C:/Users/reece.cottam/Pictures");
 }

これは、クリックイベントが発生したときに上記のコードを実行するボタンです

private void ScanFrontBtn_Click(object sender, EventArgs e)
{
    ScanSetup();
    ImageFile IF = new ImageFile();
    FrontScanBox.Image = IF.LoadFile("scannedimage.png");
}

どんな助けでも大歓迎です。

編集 エラーの原因となっているコード行は ScannedImage.Savefile です

4

3 に答える 3

1

どの行が例外をスローするかについての追加情報がなければ、ヌル値が返される可能性があるとscannedImage.SaveFile(...);ドキュメントに記載されているため、それがその行であると推測します。CommonDialog.ShowAcquireImage(...)この場合、変数scannedImageを操作しようとすると、null 参照を操作しようとしている可能性があります。

于 2013-07-19T12:23:57.723 に答える