What's the best, free, compiler/IDE that I can use to create applications with a GUI for Windows?
Printable View
What's the best, free, compiler/IDE that I can use to create applications with a GUI for Windows?
I would suggest taking out the red bit; last time someone asked that, it was weeks cleaning up the blood.
But: both Visual Studio and the MinGW port of GCC (available in Dev-C++ and Code::Blocks) can create GUI applications for Windows. There are certainly others, but those are the ones I have/used.
Everyone will have different opinions on what's best, so the best thing is to try out for yourself.
Here's a few free IDEs: http://cpwiki.sf.net/IDE
The most complete is now, by far, VS 2008
VS Professional Edition is used in all big companies
The Express edition is free and if you happen to be a student, the Professional version is also free.
I found the Visual C++ Express Edition for free, do I need that plus Visual Basic 2008? I am also a student. How would I go about getting the Professional edition for free?
https://downloads.channel8.msdn.com/
Visual Studio has Visual Basic, C/C++ and other things in one package.
So if I download Visual Studio 2008 Pro edition I will have all the tools in one package to make Windows programs?
Indeed. You'll have the ability to install any of the programming languages contained within Visual Studio.
Visual Basic, C/C++, C#, etc.
Of course, you may wish to use libraries not provided along with Visual Studio, and these you would obviously need to obtain separately.
With VS I can make programs that have a GUI, correct? Thank you very much for all your help. I do apologize for so many questions. Thanks again. :)
Yes, of course. VS contains the programming languages.
How to do GUI depends on what language you use.
For C/C++, you may want to use a GUI library. With the Pro version, you get MFC, as well. There are also other, free, alternatives out there.
IExpress I believe doesn't come with mfc, but windows forms which is Win32 trickled up to .net, while mfc is just a C++ wrapper for win32. It has a nice designer with a lot of functionality as well.
I use codeblocks which is a free open source IDE.
I signed in to download VS 2008 Pro, but my school (its a community college) is not listed. So that means I cannot get it free?
I'll also check out codeblocks ;)
You should be more worried with the GUI library you are going to use and less with the compiler and IDE.
The compiler and IDE can change, the GUI library can't... unless you don't mind rewriting everything from scratch.
Okay.
Which GUI library would you recommend and which compiler/IDE?
My favoritism is well known by some. wxWidgets all the way. Nothing less.
As for the compiler/IDE combination, depends highly on what you prefer. Try them all. I like very much mingw combined with SlickEdit (my favorite IDE). But it's an expensive option that you can replace with mingw and CodeBlocks.
Microsoft compiler and debugger is perhaps the current best combo in the Windows environment (their IDE sucks in my opinion though, but SlickEdit upped my standards considerably). If you choose the wxWidget library, definitely go Microsoft and download the Express Edition. Its, of the compilers I had an opportunity to test, the one which provides the smallest object and executable sizes in the presence of this library... and I could almost swear fastest code.
If you end up liking windows programming and wxWidgets library, my advise is to not go out with friends for a while, work in the weekends and beg a little. Save $300. When you get them, buy SlickEdit. It integrates with Microsoft tools and you get the best of both worlds; the best compiler/debugger and the best IDE.
I will try wxWidgets and download the Visual Basic Express edition. I figure VB will be better to start with than C++ or should I use the Visual C++ express edition?
So, you suggest gettin SlickEdit, wxWidgets and download Microsoft express edition?
EDIT: I am trying wxWidgets with mingw and CodeBlocks. :)
wxWidgets only applies to C++, not VB.
Whichever IDE you use doesn't matter. Try them all out.
I was not all that impressed with this product. Uninstalled it and haven't needed it at all. MSVS's biggest downfall is their debugger which is rather lacking when it comes to viewing dynamic memory of any type and anything that is templated. It also by default will not provide stack trace information after an exception. You 'can' however code this yourself. In order to get the most out of MSVS debugger and the environment you would have to get the book from Microsoft Press about debugging VS applications.Quote:
...but SlickEdit upped my standards considerably
AFAIK MSVS Express 2008 does not do/have:
- MFC
- A debugger capable of debugging multi-threaded apps (no threads window).
- No support for remote debugging (not even sure if the debug remote app is included with the d/l)
- Source control management add-in support (cannot integrate Perforce or any other SCM into the IDE)
- No add-in manager (Don't think DevPartner or any other mem leak util will integrate with Express)
- Normal amount of project template types (Express is very limited when it comes to project templates)
- Does not have nearly as many command line options in the GUI as Standard or Professional - I believe the command line compiler still supports the normal flags, but the GUI provides no way to add them.
Not sure what you mean Bubba. Don't you have a Debug->Windows->Threads menu item in your installation?
Yes but try to use it. In C# with threads going it was unable to 'switch' to the thread and show the call stack. I've had similar issues in C++. Because of all this I got a copy of 2005 Standard and while not perfect is very very good. When I move to 2008 I hope it will be much less painful than it was moving from MSVC 6 to MSVC 2005.
Very interesting. I've been delaying coding threads for my application (I will use it to handle the parsing of multiple player orders files). I don't have 2008 yet either. But good to know about this.
I'm however close to fully migrate to gcc in linux and stop the development on windows. My ThinkPad arrived last week and am already only changing code in order to fully move the development of the game to Linux. So I may not need to worry much... unless I end up discovering I'll need to debug the windows port threads. wxWidgets documentation swears I won't. Well...
This was my experience so don't take it as complete fact. We all know that Visual Studio has these little setup quirks that can make it appear that something does not work when it really does.Quote:
I don't have 2008 yet either. But good to know about this.
Myself and a co-worker were unable to get thread debugging to work in the Express editions. Fair warning about 2008 from a friend of mine. He switched his code base from 2005 to 2008 and had serious problems. According to him 2008 actually changed some braces and loops which messed his code up. I'm not sure if this was during one of those infamous project conversions or if it was something else. I have not used 2008 yet so I cannot personally backup his claims.
Best bet when moving from 2005 to 2008 or any version for that matter is to recreate the project in the new version and then rebuild. Very painful but usually easier than doing a brute force conversion.
This begs the question of why someone would go to all that trouble? If you code in ANSI C with Win32 API and a non-m$ IDE, you can avoid those kind of stupid problems all together. It's also nice not to be dependent on microsoft's expensive ........ if you're the type of person that actually pays for software. It's also nice when people can use your programs without having to update
that Dot Net Framework BS every time you release a new version, so stay way from C#/.Net. There's no excuse for relying on that stuff. Learn to program without it.
I personally use Dev-C++ w/ MinGW. Only thing that annoys me is the occasional IDE crash when debugging, but at least it saves everything before you compile to avoid any loss of work. I guess there is one other related annoyance. When you have an unhandled exception, the damn thing doesn't seem to be able to tell you what line it happened on, or even what function it was in. Rather irritating when neither the compiler nor the debugger can give you any clue where your problem is.
If you code strictly ANSI (ISO?) C/C++ and stay away from dotNet crap you shouldn't have any problem either.
I haven't had any problems with upgrading from 2005 -> 2008, really. But I don't really work on such huge projects, so maybe it doesn't affect me.
But as for the runtime front... you'll have to update eventually, and most of the time, that's a good thing, because the libraries contains more functionality or fixes.
The same will happen for something compiled in GCC too, anyway, so I think the point is moot.
Have any of you ever used NetBeans IDE?
I just found wxDev-C++. It's the Dev-C++ IDE but supports wxWidgets and MinGW. Have any of you heard of it?
It's a wxWidgets based application meant to replace the defunct Dev-C++. Personally I don't think it will go anywhere - development cycles are being exceedingly long and currently there's important functionality still missing like, for instance, a proper debugger interface.
It's no match to CodeBlocks which is a much more stable release, actively being developed and maintained and also build around the wxWidget library.
Meanwhile, the alleged "supports wxWidgets" is marketing buff. wxWidget is a C++ library. While there may be built-in GUI functionality that may help speed the development process of a wxWidgets application, fact is "support" is on this case an attribute of the compiler not the IDE.
Just get CodeBlocks.
It's a wxWidgets based application meant to replace the defunct Dev-C++. Personally I don't think it will go anywhere - development cycles are being exceedingly long and currently there's important functionality still missing like, for instance, a proper debugger interface.
It's no match to CodeBlocks which is a much more stable release, actively being developed and maintained and also built around the wxWidget library.
Meanwhile, the alleged "supports wxWidgets" is marketing buff. wxWidget is a C++ library. While there may be built-in GUI functionality that may help speed the development process of a wxWidgets based application, fact is "support" is on this case an attribute of the compiler not the IDE. And wxDevC++ is far from providing a proper GUI interface to wxWidgets since it can't even match wxWidgets own release cycles.
Just get CodeBlocks.
Is there a way I can download CodeBlocks where it comes with MinGW and the C++ compiler so it will be easier to install it all?
Becuase I downloaded it, and isntalled it, but I cannot Build or Debug anything.
Its telling me the Debugger executable has not been set. How exactly do I set it then? I do not understand how to do it.
I did, but I keep getting that error message.
When I try creating a new wxWidgets project, it tells me that "A matching debug configuration cannot be found in the wxWidgets directory you specisified." I picked where I installed wxWidgets.
The other error I got after creating the project without adding any code of my own yet and ignoring that message above: "The debugger executable is not set." It then tells me where to go to set it, but I cannot figure it out.
Porting code to newer versions of a compiler is always going to cause issues. I had the same problem with Borland's stuff back in the day.Quote:
This begs the question of why someone would go to all that trouble? If you code in ANSI C with Win32 API and a non-m$ IDE, you can avoid those kind of stupid problems all together.
It has been estimated that nearly 90% of PCs out there run on some version of Microsoft Windows. I'd say that is a very good reason to go through all the trouble. Instant support and instant guarantee to your consumers that it will work on a vast number of PCs. I'm sorry but OpenSource and Linux are still not poised to take over the PC market. Since Microsoft has more money than you have cells in your body I doubt this will change anytime soon.Quote:
It's also nice not to be dependent on microsoft's expensive ........ if you're the type of person that actually pays for software. It's also nice when people can use your programs without having to update that Dot Net Framework BS every time you release a new version, so stay way from C#/.Net.
Since you do not know me or what I do everyday I really don't think I need to respond to your sarcasm. And just for your info, most of my evil Windows code doesn't even rely on the API. It does rely on Microsoft's compiler and run-times but since they are widely supported and used by hundreds of thousands of PCs, perhaps even millions, I'd say hedging my bets on their stuff is pretty much guaranteed to produce some profits.Quote:
There's no excuse for relying on that stuff. Learn to program without it.
Also I'm not sure where you get your information but most of C++ code even today has nothing to do with .NET and doesn't rely on it. The only reason the setup and deployment needs the most recent .NET is because the wizards rely on .NET. .NET in C++ has not realy taken off that well at all.
And I'm also not sure what C# has to do with this discussion since no one mentioned it before your post.
Next time you feel like posting something absurd you may want to actually think about what you are writing. And news flash...ignoring Microsoft and their products just to 'stick it to the man' is not a wise choice. Most everyone here knows I'm not a Microsoftie but I also know they are not idiots. You don't get to where they are today by being an idiot. Face it they have the market share and you would do well to capitalize on that and write software for their OS - if, of course, that is your market niche.
err... wxwidgets needs to be built before it can be used. I'm unfamiliar with the error because I don't use CodeBlocks for quite some time. But since you pointed out that you "installed" wxWidgets before you installed CodeBlocks, I'm assuming you haven't built it yet.
Read wxWidgets documentation on installation procedures. I would... hrmm... probably suggest you used CodeBlocks for simple console applications for a while though until you get familiar with the IDE and the programming language. Windows isn't going anywhere.
So, for now do worry about wxWidgets and just do some console applications? I can do that. Then when I am ready for GUI programming I will install wxWidgets again and try and build it then.
What do you use, instead of CodeBlocks?
Currently I'm using MS Visual C++ 2005 Express Edition with SlickEdit Tools Productivity Suit.
Also have SlickEdit IDE installed but don't use it on my main project over the aforementioned issues wxWidgets has with MinGW port of gcc.
I do not like CodeBlocks. Maybe it is solely because I am new to C++. I did, have Visual C++ 2008 Express Edition. I may just go back to that.
Do the SlickEdit Tools Productivity Suit cost a lot or do they come with the IDE when you purchase SlickEdit?
Hehe... C'mon Aaron. Give me a break.
http://www.slickedit.com/ ;)
Edit: Forget about SlickEdit for now. It will only make sense later. Get the free stuff. Who knows, you may end up not even liking C++ (antichrist!)
I just downloaded Visual C++ again and also now Visual Basic. VB seems pretty nice.\
EDIT: lol Sorry about that. I figured it out right after I posted that. ;) That's not a bad price, 40 bucks ain't bad.
IMO. A combination is in use. I use three versions ATM, v6 (legacy app), 2003 mostly and some 2005 for web clients.
I think MSVC 2008 would be very rare. I think MSVC 6 would be most common.
Most complex applications take a long time to convert to newer versions of MSVC and may not work exactly the same. Most companies don't want the risk of creating a new problem in released software getting a minor patch/upgrade (nor the time it takes).
We are using 2003 at work. Possibly going to port to 2005 or may just skip to 2008. The jump from 2003 to 2005 is rather large though since 2005 is a bit more up to the standard. Given that 2003 has let previous programmers get away with some non-standard behavior it would require a significant code change to get it all to work.
Not to mention the problem of the side-by-side linking errors. Since 2005 links completely different than 2003 I have found it's nearly impossible to convert to 2005 without starting from scratch and just re-building your project. At home that's fine but not at work when you have huge projects. This would be a major undertaking.