| | |
problems compiling first Windows application
Please support our C# advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Nov 2008
Posts: 80
Reputation:
Solved Threads: 0
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: but I got these errors:
Error 1 Program 'C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\obj\Release\HelloWinForm.exe' has more than one entry point defined: 'HelloWinForm.Test.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Form1.cs 8 21 HelloWinForm
Error 2 Program 'C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\obj\Release\HelloWinForm.exe' has more than one entry point defined: 'HelloWinForm.Program.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Program.cs 14 21 HelloWinForm
Error 3 'HelloWinForm.Form1.Dispose(bool)': no suitable method found to override C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Form1.Designer.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.Test or HelloWinForm.Program, 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?
C# Syntax (Toggle Plain Text)
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); } } }
Error 1 Program 'C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\obj\Release\HelloWinForm.exe' has more than one entry point defined: 'HelloWinForm.Test.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Form1.cs 8 21 HelloWinForm
Error 2 Program 'C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\obj\Release\HelloWinForm.exe' has more than one entry point defined: 'HelloWinForm.Program.Main()'. Compile with /main to specify the type that contains the entry point. C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Program.cs 14 21 HelloWinForm
Error 3 'HelloWinForm.Form1.Dispose(bool)': no suitable method found to override C:\Documents and Settings\Bob\Local Settings\Application Data\Temporary Projects\HelloWinForm\Form1.Designer.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.Test or HelloWinForm.Program, 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?
•
•
Join Date: Jun 2008
Posts: 58
Reputation:
Solved Threads: 9
Just some quick thoughts, if you are using .NET Framework 2.0 or up then you have the notion of partial classes, which means the code for the Form can be in several different files.
The code you posted seems to be designed to be the only code in the Form, so you could try to start a new project and on a new Form just copy this section:
Just make sure "MyWindow" matches the name of the new Form and you can take off ": base()".
Hope that helps
The code you posted seems to be designed to be the only code in the Form, so you could try to start a new project and on a new Form just copy this section:
C# Syntax (Toggle Plain Text)
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); }
Just make sure "MyWindow" matches the name of the new Form and you can take off ": base()".
Hope that helps
Visual C# Kicks - Free C# code resources and articles.
•
•
Join Date: Nov 2006
Posts: 436
Reputation:
Solved Threads: 72
=======
I discovered it wasn't set. Setting it to either HelloWinForm.Test or HelloWinForm.Program, 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?
=======
First, No, you do not need to set the Startup Object for this project.
Second, looks like a very old tutorial, I suggest getting a book so you are familiar with how VS structures a program.
To create your hello world project, let the IDE do the work for you.
Create a new Win Form project, drag a label named lblGreeting onto the form.
Now either setup the properties of the form for its Text and Size, and the Text for the label and just run it, OR (the hard way) in the constructor (the only method created for your new form) add the code under the existing InitializeComponent(); line.
I discovered it wasn't set. Setting it to either HelloWinForm.Test or HelloWinForm.Program, 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?
=======
First, No, you do not need to set the Startup Object for this project.
Second, looks like a very old tutorial, I suggest getting a book so you are familiar with how VS structures a program.
To create your hello world project, let the IDE do the work for you.
Create a new Win Form project, drag a label named lblGreeting onto the form.
Now either setup the properties of the form for its Text and Size, and the Text for the label and just run it, OR (the hard way) in the constructor (the only method created for your new form) add the code under the existing InitializeComponent(); line.
C# Syntax (Toggle Plain Text)
public Form1() { InitializeComponent(); 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); }
![]() |
Similar Threads
- Having some problems with "stdio.h" in win32 (C++)
- Programming FAQ - Updated 1/March/2005 (Computer Science)
- server transfering prolems for jsp application, plzzz help!!! (JSP)
- Compiling Problems code snippets (C#)
- WinSock problems. (C++)
- Problem compiling with Dev-C++ (C++)
- Problems with the executable... (C++)
- Can't Get Going with eVC++4.0 (C++)
Other Threads in the C# Forum
- Previous Thread: CheckedListBox unavailable in Smart Device project?
- Next Thread: Writing ArrayList to textFile?
| Thread Tools | Search this Thread |
.net access ado.net algorithm array barchart bitmap box broadcast buttons c# check checkbox client color combobox control conversion csharp custom cyclethruopenforms data database datagrid datagridview dataset datetime degrees development draganddrop drawing encryption enum event excel file finalyearproject form format forms function gdi+ getoutlookcontactusinfcsvfile globalization httpwebrequest image index input install installer java label list listbox mandelbrot math mono mouseclick mysql operator path photoshop picturebox pixelinversion post programming radians regex remote remoting richtextbox save serialization server sleep socket sql sql-server statistics stream string table text textbox thread time timer timespan update upload usercontrol users validate validation visualstudio webbrowser windows winforms wpf xml






