   64Bit OS and its effect on Win32 Programming
  HiSorry if this is in the wrong forum area, I am looking at buying a new laptop that comes with Windows 64Bit.Does 64 bit windows (or is it the operating system that is 64bit or am I talking about the same thing? lol) affect my ability to program in win32?Whats your advice, if I intend to program in win32 & other windows based API's, would a 64bit Windows OS cause alot of headaches or really not be an issue?Is there anything I should know about the differences between 32 & 64 bit?   
Quote:Original post by grettyDoes 64 bit windows (or is it the operating system that is 64bit or am I talking about the same thing? lol) affect my ability to program in win32?No.Quote:Whats your advice, if I intend to program in win32 & other windows based API's, would a 64bit Windows OS cause alot of headaches or really not be an issue?Non-issue. Win32 is just the name of the API, it doesn't have anything to do with 32bit or 64bit OS versions.In fact, there are many advantages in running a 64bit OS.   ;  If that "64 bit Windows" is Windows 7, then you should go with that. Windows XP and Vista don't work so well in 64 bit (though Vista is still better than XP). Drivers can be hard to come by and are sometimes buggy.For Windows 7, 64 bit is the primary target platform, and thus the one with the best drivers and best availability (and the least bugs).Apart from that, 64 bit Windows is no difference to 32 bit Windows from your point of view. You can still develop Win32 applications just fine, and they will run as normally.Running a 64 bit OS has several considerable advantages, however:1. Your 32 bit address space is 4 GB under Windows 64 rather than 2 GB (assuming no 3 GB switch was used), which means old 32 bit programs trying to allocate more than a gigabyte of contiguous memory or more than 1.8 GB of total memory won't crash any more. No modification to the programs necessary.2. 64 bit programs have virtually unlimited address space (technically, this is wrong, but it's darn close to "unlimited"). This means they can use more memory at one time, but also that they can address more (for example with memory mapping). That can make some programs handling large datasets a lot more efficient.3. You can plug in more than 4 GB of memory and Windows will actually use it. Even if you don't have any programs using that much memory, the file cache will use it (and under Windows 7, the file cache even works reasonably well).4. Even with 4 GB, you will not "lose" any memory as under 32 bit Windows. Under 32 bit Windows (some enterprise server versions which actually let you use 12 GB excluded), you can typically use max. 3.25 GB, even if you have 4 GB plugged in. That is because the OS has to fit everything, including for example memory areas belonging to the graphics card, into 4 GB.   ;  Depends on what kinds of applications you wanna develop.There are some existing win32 applications that simply won't run on a 64-bit OS (including a lot of actively maintained games and MMORPGs). If you intend to develop add-ons to these, obviously it'd be troublesome (almost impossible) to use a 64-bit OS.   ;  Thanks for the replies guys :DThats sounds reassuring, I'm going to get windows 7 64bit.@twf; Why dont some of those win32 programs work on an 64bit OS? It doesn't have anything to do with using the win32 GDI objects I hope, or do they use some obselete win32 functions or something?   ;Quote:Original post by grettyIt doesn't have anything to do with using the win32 GDI objects I hope...Highly doubtful. Win32 functions reside in a DLL and thus are removed from the executable. Point being that the functionality of the API would remain the same, even if the DLL was recompiled by Microsoft with 64-bit code. The application wouldn't know or care.More than likely, it is some other code causing the issues.   ;Quote:Original post by grettyThanks for the replies guys :DThats sounds reassuring, I'm going to get windows 7 64bit.@twf; Why dont some of those win32 programs work on an 64bit OS? It doesn't have anything to do with using the win32 GDI objects I hope, or do they use some obselete win32 functions or something?I doubt there are "a lot of games" that don't run under 64bit, they would have to be using some draconian DRM that requires some device driver/code injection/etc that isn't available for 64bit versions, or they are actually old 16bit programs (so not actually 32bit) which don't run under 64bit because it dropped support for it.   ;Quote:Original post by twfThere are some existing win32 applications that simply won't run on a 64-bit OS (including a lot of actively maintained games and MMORPGs)Names would help here.It's quite hard to write a Windows app that would be 64-bit only. Windows comes with full backward support. The only applications that do not run are the 16-bit ones. Considering the era they were made in, they work just fine inside a virtual machine, considering they have negligible graphics needs.Quote:Whats your advice, if I intend to program in win32 & other windows based API's, would a 64bit Windows OS cause alot of headaches or really not be an issue?No. Choice of development OS has no effect on result.Supporting application for XP-7 for both 32 and 64 bit is somewhat more complicated due to added features and deprecated functionality between generations of the OS. Generally, this tends to not be much of an issue, except with regard to certain security and deployment related topics.But as far as binaries go - there are no issues. It's even perfectly possible to develop 64 bit apps on 32-bit OS, one just cannot test them.   ;Quote:Original post by AntheusQuote:Original post by twfThere are some existing win32 applications that simply won't run on a 64-bit OS (including a lot of actively maintained games and MMORPGs)Names would help here.Well, right now this article is on the front page, and it's very possible that a 32-bit program crashing on a 64-bit OS makes one (or more) of those mistakes.Although yeah, to be fair I guess that for the case of games it's just this:Quote:Original post by AntheusIt's quite hard to write a Windows app that would be 64-bit only. Windows comes with full backward support. The only applications that do not run are the 16-bit ones. Considering the era they were made in, they work just fine inside a virtual machine, considering they have negligible graphics needs.Also to be added are lots of games that assumed quirks Windows 9x had, but those usually won't even work properly on Windows XP, regardless which version was it.   ;Quote:Original post by Sik_the_hedgehogWell, right now this article is on the front page, and it's very possible that a 32-bit program crashing on a 64-bit OS makes one (or more) of those mistakes.Yes, it *could* be. But a 32-bit application will run inside a 32-bit wrapper, so it doesn't know it's running on 64 bit OS. Most of the those issues mentioned apply to recompiling the code, not running.I'd still be interested in names. Considering there are "a lot" and "actively maintained", the examples should be trivial to provide.   