Skip to main content
GameDev.net gamedev.net
🔒 Locked

[Question] Creating a windows application in c++?

Started by jacknbiecdr Mar 23, 2013 at 9:33 PM 9 replies 2.4k views
Original Post
jacknbiecdr
jacknbiecdr

do you think WIN32 API is good for windows application?

Servant of the Lord
Servant of the Lord

Nope. Try Qt or wxWidgets. wink.png

Win32 will certainly work, but it'll be alot of pain. Whatever you do, there'll be a learning curve, but IMO, Win32 is so low level that it's more of a learning wall than a curve.

Qt and wxWidgets are at a higher level of abstraction that makes it easier to get things up and running, while still retaining the same flexibility and power, with the added benefit of being cross-platform to Windows, Macintosh, and Linux.

Your mileage may vary.

Paradigm Shifter
Paradigm Shifter

Small dialog based apps aren't too bad, since the DefaultDialogProc handles quite a bit for you. Unless you just want to create a canvas for DirectX or openGL or whatever.

Otherwise, don't do it. It's tedious.

I'd use C# if I wanted a big Windows application these days. I used to do MFC in C++ but that was painful.

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
jacknbiecdr
jacknbiecdr

i just recently search about good api creator and found this QT very interesting and now downloading. thank you for the reply very much appreciated :)

EddieV223
EddieV223

Even libraries like Qt will use win32 ( on windows ) some where inside but it is abstracted away. So why reinvent the wheel? If you don't have a specific reason to work with win32, then you probably shouldn't. Qt is a great library, so is wxWidgets.

I prefer Qt, it's easy to work with, has LOTs of other functionality not just GUI stuff. Also has a cross platform IDE that IMO is second only to VS.

0r0d
0r0d

I've never used Qt, but wxWidgets is pretty nice. I recommend that one over win32.

Khatharr
Khatharr

The first time I encountered Win32 I sincerely contemplated firebombing the MS campus.

It's second nature now, but there should at least be a warning label IMO.

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
Servant of the Lord
Servant of the Lord

The first time I encountered Win32 I sincerely contemplated firebombing the MS campus.

It's second nature now, but there should at least be a warning label IMO.

What's second nature? Win32, or desiring to incinerate Microsoft? laugh.png

Khatharr
Khatharr


The first time I encountered Win32 I sincerely contemplated firebombing the MS campus.

It's second nature now, but there should at least be a warning label IMO.

What's second nature? Win32, or desiring to incinerate Microsoft? laugh.png

Oh, you caught that one, did you? wink.png

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
GeneralQuery
GeneralQuery

For a simple "game window" Win32 really isn't that bad at all. For anything beyond a simple canvas for rendering then go with a higher level framework. If it's a full on Windows-style GUI app then I'd be more inclined to go for another language like C# (but that's just me).

Eliad Moshe
Eliad Moshe
One more thing that you should consider when choosing your GUI platform is the license of each GUI library and/or API .
Qt for example, has a dual license:
0. A paid-comercial license provided by digia for pure proprietary software.
1. A LGPL license that forces the folowing restrictions (for commercial applications):
You must->
0. Expose the interfaces for the free software components to end users.
1. Povide your app's object files.
2. Encapsulate the free software components inside a dynamic link library.
(If and only if you distribute your software to others)
GTK+ which is really brilliant, has a LGPL license as well.
WxWidgets has it's own license that lets you release your proprietary software without the need to expose anything as long as you disterbute your app in a binary form.
A word in regards to the win32 API:
The windows API gives you, by far, more power and flexibility than any other API listed (in the cost of implementing a huge set of things by yourself),
for Windows operating systems.
It is true that it has a quite steep learning curve, although it is brilliantly documented, rich, fast and beautiful !
Also, it is required if you attempt to create a pure DirectX application.
+ you can release your GUI components without any restrictions.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.