<p>There are a ton of drivers &amp; famous applications that are not available in 64-bit. Adobe for instance does not provider a 64-bit Flash player plugin for Internet Explorer. And because of that, even though I am running 64-bit Vista, I have to run 32-bit IE. Microsoft Office, Visual Studio also don't ship in 64-bit AFAIK.</p>

<p>Now personally, I haven't had much problems building my applications in 64-bit. I just have to remember a few rules of thumb, e.g. always use SIZE_T instead of UINT32 for string lengths etc.</p>

<p>So my question is, what is preventing people from building for 64-bit?</p>

Just a guess, but I would think a large part of it would be support - If Adobe compiles the 64 bit version, they have to support it.  Even though it may be a simple compile switch, they'd still have to run through a lot of testing, etc, followed by training their support staff to respond correctly, when they do run into issues fixing them either results in a new version of the 32 bit binary or a branch in the code, etc.  So while it seems simple, for a large application it can still end up costing a lot.