problems compiling first Windows application

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • BobLewiston
    New Member
    • Feb 2009
    • 93

    problems compiling first Windows application

    I tried to compile a Windows Forms Application in Visual C# 2008 Express with this source code from the CSharpSchool tutorial at Programmer's Heaven:
    Code:
    using System;
    using System.Windows.Forms;
    using System.Drawing;
    namespace CSharpSchool
    {
        class HelloWinForm
        {
            static void Main ()
            {
                Application.Run (new MyWindow ());
            }
        }
        class MyWindow : Form
        {
            public MyWindow () : base ()
            {
                this.Text = "My First Windows Application";
                this.Size = new Size (300, 300);
                Label lblGreeting = new Label ();
                lblGreeting.Text = "Hello WinForm";
                lblGreeting.Location = new Point (100, 100);
                this.Controls.Add (lblGreeting);
            }
        }
    }
    but I got these errors:

    Error 1 Program 'C:\Documents and Settings\Bob\Lo cal Settings\Applic ation Data\Temporary Projects\HelloW inForm\obj\Rele ase\HelloWinFor m.exe' has more than one entry point defined: 'HelloWinForm.T est.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Lo cal Settings\Applic ation Data\Temporary Projects\HelloW inForm\Form1.cs 8 21 HelloWinForm

    Error 2 Program 'C:\Documents and Settings\Bob\Lo cal Settings\Applic ation Data\Temporary Projects\HelloW inForm\obj\Rele ase\HelloWinFor m.exe' has more than one entry point defined: 'HelloWinForm.P rogram.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Lo cal Settings\Applic ation Data\Temporary Projects\HelloW inForm\Program. cs 14 21 HelloWinForm

    Error 3 'HelloWinForm.F orm1.Dispose(bo ol)': no suitable method found to override C:\Documents and Settings\Bob\Lo cal Settings\Applic ation Data\Temporary Projects\HelloW inForm\Form1.De signer.cs 14 33 HelloWinForm

    Feeding this into a search engine:

    "visual c#" "Compile with /main"

    yielded this link:

    Compiler Error CS0017
    Visual C# Reference: Errors and Warnings. Compiler Error CS0017 ... Compile with /main to specify the type that contains the entry point. ...
    msdn.microsoft. com/en-us/library/t9k01y87.aspx

    which said:

    If you are using MS Visual Studio and do not want to delete the other Main() methods you can specify the class which you want as you Entry Point in Startup Object in the Project Properties under Application Tab (at least for VS2008 Express)

    Going to:

    Project | HelloWinForm Properties | Application | Startup Object

    I discovered it wasn't set. Setting it to either HelloWinForm.Te st or HelloWinForm.Pr ogram, the first two problems disappear, but not the third. I can't see how this code has more than one entry point, and I'm not at all clear on why the compiler requires these gyrations in Startup Object. None of these issues are mentioned by CSharpSchool, which claims the code I used will run as written. This is my first Windows app, and WOW! am I in the dark on this. What gives? Maybe I should just get a different tutorial. Any explanations of this or, failing that, any suggestions for which tutorial(s) I should use?
  • vekipeki
    Recognized Expert New Member
    • Nov 2007
    • 229

    #2
    1st and 2nd error: you have two static Main() methods in your source, remove one of them - you can only have one entry point for your program (the method that is first called on start).

    3rd error: you have a "Form1.Designer .cs" file which defines some Form-related methods (like Dispose) for your HelloWinForm class. But in "Form1.cs", you don't show that HelloWinForm if actually derived from Form. You should have something like:
    Code:
    partial class HelloWinForm : Form
    when defining the name of your class in "Form1.cs".

    Try to create a blank project, remove all forms, and then add the code again. Do not change anything before you get it running for the 1st time.

    Comment

    Working...