I want to learn how to make my own customized dev tools with GUI, like Shiru's "NES Space checker" for example. Where to begin? which language should I choose and why? What language do you use?
I know some c++ but have only ever made console applications, I want to learn how to make GUIs as well. Any suggestions?
If you're on Windows platform I highly recommend Microsoft.NET technology ("Visual Studio 2010" comes to mind).
picccca wrote:
I want to learn how to make my own customized dev tools with GUI, like Shiru's "NES Space checker" for example. Where to begin? which language should I choose and why? What language do you use?
I know some c++ but have only ever made console applications, I want to learn how to make GUIs as well. Any suggestions?
Qt
yes, I'm on windows platform. Any special reason why I should choose .NET or Qt?
picccca wrote:
yes, I'm on windows platform. Any special reason why I should choose .NET or Qt?
I went from Visual Studio to Qt and wouldn't go back if you paid me. I use Visual Studio at work simply because it's available and we are all Windows.
From a "deployment" perspective, I think the two are probably comparable. Just search this forum for people with woes of .NET componentry that didn't come with some tool someone created. Same goes for Qt, with a few necessary DLLs. Back in the days before .NET Visual Studio was nice I could just create a binary with everything statically linked and distribute one .exe.
picccca wrote:
yes, I'm on windows platform. Any special reason why I should choose .NET or Qt?
I've never used Qt so I can't comment on that. With VisualStudio.NET you can create Windows-applications in very short amount of time. GUI is designed by drag'n'drop. .NET framework has lots and lots of functionality and will probably cover most of your needs.
Visual Studio btw comes in a free "Express" edition that can be dowloaded from microsoft.com.
I've written my "FDSExplorer" tool (for manipulating FDS-images) with .NET technology. You can check it out to get a feel of what you can do:
http://www.anes.se/nestools/
Qt is designed to be cross-platform. The .NET framework is designed for Windows, and you have to watch which libraries you use if you want your product to be compatible with Mono (the most common .NET implementation on non-Windows platforms).
I'd say try not to use microsoft technologies and go with what they say, because all the saving and loading bullshit .NET applications add when they do that is fucking annoying.
What's the "Saving and loading bullshit"?
3gengames wrote:
I'd say try not to use microsoft technologies and go with what they say, because all the saving and loading bullshit .NET applications add when they do that is fucking annoying.
I wish I understood what that meant.
Anyways, I can only speak for .NET because that's where my experience is, but C# would probably be pretty easy to transition to from C++, and deployment of simple projects is easy. I target .NET 2.0 in my programs, which means at least 95% of Windows users already have the libraries they need installed. All I distribute is a binary.
If you're concerned about cross-platform compatibility you'll need to test and debug your software on multiple platforms (I think this is true of most languages and libraries). Qt might transition between OS's more smoothly (I don't know), but you do need to be careful if you want a .NET program to run in Mono.
I always have to click too much stuff and be annoyed by "what file? You SURE you want this .bin file instead of the standard .chr?" "Do you REALLY want to save?" etc, because that's just how it works. It's annoying, very.
That has nothing to do with .NET itself and all to do with how the program in question works.
I personally use Borland Turbo C++ (a cut-down version of C++ Builder), a counterpart for the more famous Borland Delphi, every time when I need to make Windows-only GUI tool really fast. Why? Because I used to it, know VCL well, and learing Qt or something would take extra time; and because I have a free version of it, of course. Unfortunately, they don't have a free version anymore, so it can't be recommended - commercial edition costs a lot.
OK, I think I will go with C# and .NET as I will probably only make dev tools or other applications for myself (Windows).
Anyway, how many of you are running some type of Linux as your main OS?
I do. I bet a lot of us are.
I've written many projects using the regular win32-api (no MFC, rarely COM, sometimes ATL, yes STL) with either C or C++. The vast majority of those projects can compile without changes on Linux with winelib and run just fine on Linux.
Although I've never ported it to Linux, the Faria ROM Editor is probably the best example of a fairly simple win32 app that I can share the src for with you [1].
That being said, win32 is old school. However, it is what I know well for non-web gui development.
My advise to you is to use the best tool kit for your preferred development platform and targeted user base. It probably isn't win32 or ncurses....
[1]
https://www.ecoligames.com/svn/FariaEditor/
Well I can now also recommend others using Microsoft Visual C# 2010 Express, it sure was fast to learn. Thanks to oRBIT2002 for suggesting.
I tried to make my own version of the NES Space Checker, here's a screen shot: hope you don't mind Shiru for this cheap ripoff
Why, it is always good to have alternatives.
I always used YY-CHR as a space checker. You can visually see the 00 and FF blocks.