Laden...

Hilfe: Compiler schreit und ich weiß nicht wieso!!

Erstellt von hauns2000 vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.123 Views
H
hauns2000 Themenstarter:in
18 Beiträge seit 2005
vor 18 Jahren
Hilfe: Compiler schreit und ich weiß nicht wieso!!

hi, ich hab eine c#-Windowsanwendung geschrieben, die der ich ein beliebiges Bild gebe und es wird mir ausgedruckt. Jetzt hab ich das ganze aber in eine c#-Konsolenanwendung umschreiben müssen und bekomme immer den selben Kompilier-Fehler!

Hier mal der Code der Windowsanwendung (kurzfassung, funktioniert):



namespace WindowsApplication3
{
	public class Form1 : System.Windows.Forms.Form
	{
		System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
		
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			InitializeComponent();
			pDoc.PrintPage += new PrintPageEventHandler(printPage);
			pDoc.PrinterSettings.PrinterName = "Adobe PDF";
			pDoc.DocumentName = "anhang.pdf";

			pDoc.Print();
		}

		
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}
		private void printPage(object sender,PrintPageEventArgs e)
		{
			System.Drawing.Image image = System.Drawing.Image.FromFile(@"C:\Projekte\anhang.tif");			
			e.Graphics.DrawImage(image,0,0);
		}
	}
}

und hier der Code mit der Fehlermeldung:


namespace pdfconverter
{
	class Class1
	{
		System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
		[STAThread]
		static void Main(string[] args)
		{
			doc.PrintPage += new PrintPageEventHandler(printPage);
			doc.PrinterSettings.PrinterName = "Adobe PDF";
			doc.DocumentName = "anhang.pdf";
			doc.Print();
		}
		private void printPage(object sender,PrintPageEventArgs e)
		{
			System.Drawing.Image image = System.Drawing.Image.FromFile(@"C:\Projekte\anhang.tif");			
			e.Graphics.DrawImage(image,0,0);
		}
	}
}

folgende Kompilierfehler treten auf:
C:\Dokumente und Einstellungen\js\Eigene Dateien\Visual Studio Projects\pdfconverter\Class1.cs(22): 'pdfconverter.Class1.doc' deutet auf 'Feld' hin, wo 'Klasse' erwartet wurde

Wäre wirklich froh, wenn mir da jemand von euch weiterhelfen könnte!!
DANKE!

mfg
Hauns2000

P
939 Beiträge seit 2003
vor 18 Jahren
        
        PrintDocument doc = new Printing.PrintDocument();

[STAThread]
static void Main(string[] args)
{
        doc.PrintPage += new PrintPageEventHandler(printPage);
}

doc ist eine Instanz-Variable. In der statischen Main-Methode ist diese Variable nicht sichtbar. Der Compiler versucht jetzt doc als Klasse zu interpretieren, findet sie aber nicht.

Wenn der Code so bleiben soll, musst du die doc-Mitgliedsvariable static deklarieren.

Gruss
Pulpapex

H
hauns2000 Themenstarter:in
18 Beiträge seit 2005
vor 18 Jahren

DANKE!!! funktioniert wunderbar!

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo hauns2000,

ich werde nicht müde, darauf hinzuweisen, dass man auch als Anfänger Syntax-Fehler leicht lösen kann, zumal die SDK-Doku hierfür sehr gut ist. Einfach die Fehlernummer im Index suchen und schon kommt man zu einer guten Beschreibung, oft mit Beispielcode.

herbivore