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?

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.

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

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.

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?

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.

commented: Agree +17

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.

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!

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.