I can't stand Win32!

My main issue with programming is that I am one of those people that go by 'If I don't completely understand what I am putting down, to the dot, then I am not going to use it until I do'. Naturally, this is really difficult to go by with Win32, and I just seem to get lost at some point every time I try learning it. This is why I seem to be so bound to console applications. I'm also another one of those people that hate to use libraries and headers that aren't Windows made or made by me. So I really have nothing available to get around learning Win32 with. My one desire is to just get down to making some simple windowed games! This was really more of a rant than a question to see other peoples opinions on the topic, or if anyone can relate. Can someone really discuss the difficulty of learning Win32? (And I mean LEARNING, knowing how everything works, etc. Not just copy pasting something you don't fully understand) Is it that advanced, or am I just over-complicating things?
I'm also another one of those people that hate to use libraries and headers that aren't Windows made or made by me.


Mind if I ask the reasoning behind this? I don't see the sense in limiting your self to any one vendor when there is so much good useful code. If you want to make games look into SFML, I'm playing with it myself between assignments and it is very easy to use compared to the win32 API.
Mind if I ask the reasoning behind this? I don't see the sense in limiting your self to any one vendor when there is so much good useful code. If you want to make games look into SFML, I'm playing with it myself between assignments and it is very easy to use compared to the win32 API.



Mostly because I have always had a feeling that I haven't accomplished as much if I am not using things that are as raw. Like, I don't feel as proud of my work if I use something that adds more abstraction.
Naturally, this is really difficult to go by with Win32, and I just seem to get lost at some point every time I try learning it.
C was developed on Unix for Unix, so when you learn C, you also learn a bit of Unix programming implicitly. Windows is an old technology with a lot of legacy subsystems built into it. The Windows way diverges from the Unix way in many areas, perhaps this is where your concerns lie.

I'm also another one of those people that hate to use libraries and headers that aren't Windows made or made by me.
You can't write everything yourself. The not built here syndrome doesn't cut it in the real world.

Can someone really discuss the difficulty of learning Win32?
It is complicated. It's the product of different technologies coexisting on one platform. There's a lot of backward compatibility available, and unless you understand the history of a subsystem, there's little sense to it.
You can't write everything yourself. The not built here syndrome doesn't cut it in the real world.


+100 @ This.

You need to get over that syndrome for reals.
Hm, well, do you guys think SFML would be a good alternative for me, as I try to throw off my 'syndrome'? Has anyone else had any experience with it?
closed account (z05DSL3A)
Can someone really discuss the difficulty of learning Win32?

Windows API programming really isn't 'that' difficult, it's just a slightly different mind set. What most people seem to have trouble with is the switch to an event driven system (and sometimes the lack of basic procedural programming skills).

Here is a 'road map' to learning Windows API:
http://www.cplusplus.com/forum/windows/37273/#msg201954

And if you are interested in it (the low level guts of windows),
Windows Internals 5th Edition
by Russinovich, Solomon, and Ionescu.
http://www.amazon.co.uk/Windows-Internals-PRO-Developer-Mark-Russinovich/dp/0735625301/ref=sr_1_1?ie=UTF8&qid=1298969224&sr=8-1
C and Unix were designed together, but they are not that tightly bound. Windows was written in C as easily as was Unix.

And as far as value goes, the design of modern windows systems (9x+) only suffers from some lack of foresight in implementation (and I can't blame anyone for design failures when testing a new design strategy), but as it stands, the Windows OS has a superior design pattern than the monolithic Unix system. Both systems have flaws, and we regularly live comfortably with both systems, so hatred bias for one system is just that.
I'm also another one of those people that hate to use libraries and headers that aren't Windows made or made by me.

I think this statement needs explanation. Does it meant that your console programs too are made without headers and libraries? Or does it mean that you love Microsoft-made libraries... :D

My one desire is to just get down to making some simple windowed games!

IMHO one of the best ways to do that is to contribute to open source projects or learn from them -look 'em up @SourceForge
also you can look up SDL and Qt as (multi-platform-ish) an alternative to 'raw' Win32 programming.
links:
SDL: http://sdl.beuc.net/sdl.wiki/FrontPage
SDL tutorials: http://www.sdltutorials.com/
Qt: http://doc.qt.nokia.com/4.7/index.html

Can someone really discuss the difficulty of learning Win32?

It depends on a person's style of learning, I guess. I was one of those who does things without questioning and pretty much accept and follow what was written in books and tutorials -up to a point where I feel comfortable asking 'why does it have to be like this' or 'why do we do this' etc. The 'difficulties' I experienced in learning Win32 programming were more personal -I'm not as talented in programming as most of your guys here or perhaps not as intuitive* and being quite old, perhaps too much set in my ways (can't teach old dogs new trick and all) and also not being a native English speaker, a difficulty in understanding the points made by authors/online tutors etc. So, my motto is -accept your weakness and don't give up too easily :)

*that's why I'm here -I love the discussion and insight the gurus here gave, I started programming ~10 years ago with C, but stopped doing it around 03-04. Only started seriously reading and coding C++ last year -not long before I joined this forum
C and Unix were designed together, but they are not that tightly bound.
A big part of the C89 standardisation process was to disentangle what was Unix and what could go into the standard library. To this day, stdio.h is a standard POSIX interface as well as being adopted by ANSI C. The BSD variants were dropped in favour of AT&T; for example bzero and bcopy giving way to memet and memcpy.

The only stdio'ish function WIN16 supported was wsprintf--an sprintf that didn't pull in the floating point library. It hangs on today for reasons of backwards compatibility, and no other reason.

Anyway, my point is when you learn C, you implicitly learn a bit of Unix systems programming too because that's where the bulk of the standard library came from.

When you learn Windows, you're starting from scratch. The program entry point's different, the function calling convention is different, even memory management is different; malloc()'s came back in favour in WIN32, but prior to that you had to use GlobalAlloc/LocalAlloc (which still hang on today for backwards compatibility).

Both systems have flaws, and we regularly live comfortably with both systems, so hatred bias for one system is just that.
+1
Topic archived. No new replies allowed.