954,498 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Windows programming

Why should a person learn win32 api? What things I can do when i have learnt it? Some people tell "There is no need to learn win32 api because literaly you will only design Window(box, messagebox etc), which you can easily do by MS Visual studio tools!". Is this true? And if i want to write a Video player software still I would have to use 3rd party library files(Header files)? I am asking it because most of the colleges and schools teach only Dos programming in C/C++.. I don't why?

C++ programmer
Light Poster
28 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

The reason they teach DOS programming is because its a lot easier to learn then win32 api. New programmers don't yet have the skills needed to program win32 api.


Another reason may be the old and ancient compilers/IDEs some schools use, such as Turbo C. They are too old to code for win32 api.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

Will you please clearify me "Why should a person learn win32 api? What things I can do when i have learnt it? "!

C++ programmer
Light Poster
28 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

Why should a person learn win32 api?
It's fun and it's a challenge. It gives you another tool in your tool box to use when needed.
___________________________________________

What things I can do when i have learnt it?
Anything you want. Well, almost.

Understand what's behind Visual Basic and why you can't do certain things with this or other less flexible languages.
___________________________________________

Some people tell "There is no need to learn win32 api because literaly you will only design Window(box, messagebox etc), which you can easily do by MS Visual studio tools!". Is this true?

Visual Studio is a group of languages that can be used to create Windows based programs. It isn't a language in and of itself. You can use whichever tool suits your needs and knowledge base the best.
_____________________________________

And if i want to write a Video player software still I would have to use 3rd party library files(Header files)?

Quite possibly. There's no one tool that works for every job. Of course, you could always write your own functions etc, but if there's something already written that does what you want, go ahead and use it, unless you're a purist and want to do everything by yourself.
_______________________________

I am asking it because most of the colleges and schools teach only Dos programming in C/C++.. I don't why?

Not all schools do it that way.

DOS is an operating system, not a language.

Programming for a console allows people to learn the basics without all the falderall. Of course, using things like Visual Basic or other more "user friendly" tools is another way to go.

Lerner
Nearly a Posting Maven
2,382 posts since Jul 2005
Reputation Points: 739
Solved Threads: 396
 

Multi-threaded/process programs for starters.
Mutexes, Semaphores, all the yummy goodness.
Then there's windows, messages, callbacks.
You know. The stuff they don't teach you in college until MAYBE the senior year. Even then, my Operating Systems class never touched GUIs let alone straight from the OS API.
This is the good stuff.

And it'll carry over when you branch into other OSes. The function calls will be a little different, but the idea is mostly the same.
Except for Unix's fork(). What the hell, Windows?

DeanMSands3
Junior Poster
186 posts since Jan 2012
Reputation Points: 37
Solved Threads: 27
 

In addition, as AD pointed out win32 is a very daunting topic, But let me give you a flip side,

Why should you not learn win32?

I would say the biggest argument against win32 is (excluding *nix and mac crazies) that your restricting yourself to one operating system albeit practially the most common. I would suggest to you instead

1: Learn standard c/c++ try to avoid anything operating system related for as long as you possibly can.

2: instead of win api, look at boost, c++11 and cross platform tools for GUI development such as Qt (Wxwidgets and others exist but in my opinion / expierence i have found Qt to be the most flexible and cleanest to code in )

But really why people dont teach win32 api is largely because its far to complex to grasp (for a beginner) and to use it properly you must have a strong command over the c/c++ language.

I hope something in that is of use to you.

Kanoisa
Posting Whiz in Training
224 posts since Jul 2008
Reputation Points: 62
Solved Threads: 28
 

It's just another environment where you can choose to take advantage of the benefits.
The same concept applies to other operating systems and operating environments like Unix/Linux, DOS, Dot Net, JVM, Apple, Mobile (Android, Windows, iOS, WebOS), etc.

Each environment has something for which it is well-suited.

thines01
Postaholic
Team Colleague
2,424 posts since Oct 2009
Reputation Points: 445
Solved Threads: 402
 

In addition, as AD pointed out win32 is a very daunting topic, But let me give you a flip side,

Why should you not learn win32?

I would say the biggest argument against win32 is (excluding *nix and mac crazies) that your restricting yourself to one operating system albeit practially the most common. I would suggest to you instead

1: Learn standard c/c++ try to avoid anything operating system related for as long as you possibly can.

2: instead of win api, look at boost, c++11 and cross platform tools for GUI development such as Qt (Wxwidgets and others exist but in my opinion / expierence i have found Qt to be the most flexible and cleanest to code in )

But really why people dont teach win32 api is largely because its far to complex to grasp (for a beginner) and to use it properly you must have a strong command over the c/c++ language.

I hope something in that is of use to you.

What things can we do in QT? can we make multithreaded programs and Mutexes, Semaphores etc?
Why should I learn it!

C++ programmer
Light Poster
28 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

You would want to learn QT if you want to write a cross-platform program. QT is a compiler that produces GUI programs for both *nix and MS-Windows from the same exact source code.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: