Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Utwo

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

This topic is 5670 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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!

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!