0

Let's say I am developing a program for Windows. What are some things I can / can't do if I want it to be usable for 32 / 64 bit platforms?

2 Answers2

3

My thoughts on this

  • 32-bit applications can run on 64-bit windows but not vice-versa.
  • 32-bit applications running on 64-bit windows by default see a "virtual" view of the filesystem and registry. This can get rather confusing sometimes.
  • If your application uses a custom driver then that driver will need to have 32-bit and 64-bit versions of the driver. 64-bit windows is far more restrictive about driver-signing than 32-bit was.
  • I am aware of at least one set of APIs* that is broken for 32-bit applications on 64-bit windows. If you run into such an API you may need to make seperate 32-bit and 64-bit builds of your application.
  • In general test early and often on all supported platforms. It's easier to work arround a quirk you discover (whether related to version or number of bits) when you are first developing a feature than it is to have to deal with it later.

* The one i'm aware of is the "advanced firewall" COM API used to reconfigure the firewall on windows 7, but I expect if there is one such API broken there are others.

Peter Green
  • 2,326
0

What are some things I can / can't do if I want it to be usable for 32 / 64 bit platforms?

Everything @Peter Green said is right. Most of time, programs will be able to run on both 32bits / 64bits. Here are some other pitfalls:

  • using a library which runs only on either is the most common constraint
  • doing some funky stuff with pointer arithmetic can easely backfire because of a wrong assumption in a pointer's size (for c++ folks)
  • programs using more than 4Gb memory require 64bit
  • doing some very low-level OS/drivers stuff
dagnelies
  • 5,493