   Is it worth learning the windows API at this time?
  Hello,I'm pretty good with openGL and C++.  I'v done a bunch of projects using GLUT and only one using the windows API.  When using the windows API, I can create windows just fine but I'm not good with controls( Buttons, Edit box's, ect. ) and implementing user interface semantics in general.  I'm thinking about buying "Programming Windows, Fifth Edition" and trying to master the win32 API.  HOWEVER, I do not want to spend a bunch of time learning something that will be obselete in the near future.  I'm just wondering what the "API" of tommarow is and if it's worth learning the win32 API since it is seems kind of old.  Especially since 64 bit architechture is creeping into the market. Any thoughts are very much  appreciated.   
  Id say its a good idea to learn, almost all of the current Win32 API was taken from the old Win16 API and as such same will be done for the full 64 bit version one day (only difference is they have to re-write it for 32/64/128.....).  Even if they change the data types system functions will stay the same.   ;Quote:Original post by xDS4LxId say its a good idea to learn, almost all of the current Win32 API was taken from the old Win16 API and as such same will be done for the full 64 bit version one day (only difference is they have to re-write it for 32/64/128.....).  Even if they change the data types system functions will stay the same.I wouldn't learn it.I'm 99% sure they aren't going to remake the C library for Vista.  Instead, you should use the .NET Framework.  Just learn how to use the Windows form-creator in the free Visual Studio 2005 Express, and you can make programs much more easily.   ;Quote:I wouldn't learn it.I'm 99% sure they aren't going to remake the C library for Vista.  Instead, you should use the .NET Framework.  Just learn how to use the Windows form-creator in the free Visual Studio 2005 Express, and you can make programs much more easily.  Wrong.  There will always be the API, .NET is written on top of it as a layer to simplify things, just like C++ is a layer above asm to make coding simpler.   ;  Why not learn it. You will at least be familiar with the api   ;Quote:Original post by Daniel MillerI'm 99% sure they aren't going to remake the C library for Vista.huh?  just because they have a layer on top of it doesn't mean they ditch the C base.  that's like saying they wouldn't expose Win32 because they put MFC out.  learning Win32 will always let teach you how to use the higher level stuff better, and it will always be more powerfull.;  IMO, you should at least be familiar with the Win32 API. I wouldn't spend ages learning it though, because if you want to do any serious GUI applications, you would probably be using something higher level like MFC or what not.   ;  I learned enough Win32 to get a window up for directx. After that I learned C++/CLI and use .Net stuff for all my gui programming and I love it. I know native C++ very well and found the move over to C++/CLI to be extremely easy. It only took me a couple days before I was able to start writing some small sample programs.   ;Quote:Original post by Daniel MillerQuote:Original post by xDS4LxId say its a good idea to learn, almost all of the current Win32 API was taken from the old Win16 API and as such same will be done for the full 64 bit version one day (only difference is they have to re-write it for 32/64/128.....).  Even if they change the data types system functions will stay the same.I wouldn't learn it.I'm 99% sure they aren't going to remake the C library for Vista.  Instead, you should use the .NET Framework.  Just learn how to use the Windows form-creator in the free Visual Studio 2005 Express, and you can make programs much more easily.I'm very doubtful they'll be doing that. If you check MSDN's various help docs for the Win API. They convienently label under the "Requires" section for various WinAPI functions, "Windows Vista" - They're keeping compatability with the WinAPI.It would make very very very very little sense for them not to :\   ;  After using .Net forms stuff for so long, I find that going back to deal with Win32 stuff is absolutely and unneccessarily tedious.I find that MFC is too cancerous for my tastes (recently ran into a library that was built to use the MFC shared DLL, used that library as a plugin in another app which had a custom memory manager, and when the MFC DLL unloaded, it would hang the app for 20 minutes while MFC called _CrtDumpMemoryLeaks that could not be disabled by any means.  There were no leaks, it was confused because of the alternate memory manager.  I had to rewrite the library to avoid using MFC at all.)If you want to write GUI apps AND want to learn Win32, I suggest you come up with your own lightweight (unlike typical usage of MFC) classes-and-templates-based system to wrap Win32 so it's not such a cumbersome mess for you to deal with when you're actually trying to put a GUI app together quickly.   