Advertisement

Win32? SDK? SDL? MFC? GDI? Arrgh!

Started by February 09, 2003 01:11 PM
13 comments, last by Utwo 21 years, 9 months ago
I''m a little confused over the exact meaning of these acronyms. I know what they stand for, but how do they relate to each other? I heard that under the Win32 "umbrella" lies two APIs, MFC and SDK. GDI is used for graphics when programming with Win32, but is that a completely seperate component or is it something else? Why would one use MFC instead of SDK? Have I got this all completely wrong? For the most part, I have some questions related to graphics and sound, and I would like to first know how to ask the question properly before I ask it, and I need to be clear on these terms. Thanks!
---signature---" Actually, at the time, I didn't give a damn about the FoxNews issue... just that you would come swooping in with your Super Mith cape flapping behind you and debunk it just because it didn't happen in your living room." - InnocuousFox
Win32 -- All the libraries that are used for 32 bit Windows programming (what a surprise, huh?)

Win32 SDK -- Software Development Kit, the most basic way to do Windows programming, and the most "low-level".

MFC -- Microsoft Foundation Classes, a huge bunch of classes that wrap around the SDK and make things more complicated. I never learned MFC, but I guess it''s very useful for large Windows apps.

GDI -- Graphics Device Interface (I think). This is a component of the SDK.

SDL -- Simple DirectMedia Layer. Has absolutely nothing to do with Windows.
Advertisement
Win32 is the core of the Windows OS. You interact with it using the Win32 API (application programming interface). Since this API is considered cumbersome by some people (non-OO et cetera), the Microsoft Foundation Classes (MFC) were created. It''s a class library that wraps all Win32 API functionality into nice C++-classes. GDI is the graphics component of the Windows operating system, it can be used via API function calls or MFC classes. SDK just means "software development kit" and can be any kit for writing programs, be it for Win32, Linux, Office, Java, you name it.

Oh, and you''ll probably want to use DirectGraphics or OpenGL instead of interacting with the GDI directly.
quote: Original post by micepick

MFC -- Microsoft Foundation Classes, a huge bunch of classes that wrap around the SDK and make things more complicated. I never learned MFC, but I guess it''s very useful for large Windows apps.



Hahaha. I loved that definition
Gaiomard Dragon-===(UDIC)===-
quote: Original post by Anonymous Poster
Oh, and you''ll probably want to use DirectGraphics or OpenGL instead of interacting with the GDI directly.


That is misleading. DirectX Graphics and OpenGL bypass the GDI completely because it is too slow for their needs. OpenGL obviously can''t touch the GDI because it has to be platform independent. DirectX Graphics was created for the sole reason that the GDI is too slow to make games with and has no 3D support.
quote: Original post by Outworlder
Hahaha. I loved that definition


It''s true, though, isn''t it?
Advertisement
Thanks guys. That made things MUCH clearer.

I'm currently using GDI in my Tetris clone. Or would it be more accurate to say "I'm accessing GDI directly through Win32 API function calls?" Either way, it's all part of my hair-brained scheme to learn the ins and outs of Win32 programming.

I bought LaMothe's book, and he touches on some of the necessary parts of GDI programming before moving on to DirectX. I found much of DirectX confusing (especially the COM stuff), and so I've decided to do my own research and fill in the gaps of creating a full program in Win32 before moving on.

Edit: How does one know it's true without first learning how to use it? :-p

Does GDI have support for alpha?

[edited by - utwo on February 9, 2003 2:39:16 PM]
---signature---" Actually, at the time, I didn't give a damn about the FoxNews issue... just that you would come swooping in with your Super Mith cape flapping behind you and debunk it just because it didn't happen in your living room." - InnocuousFox
quote: Original post by micepick
OpenGL obviously can''t touch the GDI because it has to be platform independent.

the interface must be platform independent. however, the actual implementation is free to use any platform-specific services it wishes, and in fact, it has to. how else are you going to talk to platform-specific drivers? if you look at opengl32.dll, it imports a few functions from gdi32.dll indirectly through ddraw.dll.
quote:
DirectX Graphics was created for the sole reason that the GDI is too slow to make games with and has no 3D support.

dx can still use lower-level parts of gdi to talk to drivers. it''s the high-level interface of gdi that''s slow.
quote: Original post by micepick
It''s true, though, isn''t it?

of course. thousands of mfc programmers all over the world use it because it''s more complicated than using raw win32 api directly. why else would you use a piece of software, if not to make your life harder?
quote: Original post by Utwo
Does GDI have support for alpha?

yes, on win 98, 2000 and up.

This topic is closed to new replies.

Advertisement