Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want to make sure that on 64-bit Windows, 32-bit application can be installed/run without any issues? And it is guaranteed by Windows backward compatibility?

For example, any application (e.g. Microsoft Windows Media Encoder 9) which runs smoothly on 32-bit Windows 7 can run smoothly on 64-bit Windows 7.

I am developing some software and actually my question is whether release x86 version is ok for both 32-bit and 64-bit Windows 7. If WOW could guarantee it, it could save my work to package different binaries for different platforms.

share|improve this question

migrated from stackoverflow.com Sep 30 '10 at 11:21

This question came from our site for professional and enthusiast programmers.

add comment

2 Answers 2

up vote 3 down vote accepted

No, there is no guarantee, and it isn't difficult to find examples of 32-bit applications or libraries not behaving as expected when running inside WoW64 (Windows on Windows 64-bit, the 32-bit environment that allows 64-bit versions of Windows to run 32-bit applications).

In general, they'll work fine, but it's certainly not a guarantee.

Also, this belongs on superuser.com; this isn't software development related.

share|improve this answer
    
Thanks for reply and sorry I did not make myself understood. I am developing some software and actually my question is whether release x86 version is ok for both 32-bit and 64-bit Windows 7. If WOW could guarantee it, it could save my work to package different binaries for different platforms. Any comments? –  George2 Sep 30 '10 at 5:42
1  
@Adam, This seems dev related to me. I certainly considered the same issue at my company when debating building/packaging a 64bit version separately, as a design question. –  Nick Sep 30 '10 at 7:14
1  
That said, @George, you may want to edit the question to make it clear you're asking about an app your developing, and incorporate your comment into the main post... –  Nick Sep 30 '10 at 7:16
    
Thanks Nick, I have updated my question according to your comments above. –  George2 Sep 30 '10 at 7:30
    
Thanks, question answered! –  George2 Oct 9 '10 at 3:34
add comment

In general, this will work. As a real-world example, my company does this for all our apps (ie: ship x86 versions which run on both 32 and 64 bit OS's).

There are no certainties, though, and you should test before shipping. Generally it will work unless your application is doing something "strange" (eg: using 16-bit components/drivers), but there are cases where it will not.

Also note that there are some differences in behavior (eg: how registry/files are accessed with automatic redirection), so you really should test it. However, it is designed to work in most cases, and that has been my experience with the apps I write, generally.

share|improve this answer
    
Thanks Nick, in your experience, besides using 16-bit component, any other common issues which block x86 application run on x64? –  George2 Sep 30 '10 at 7:09
1  
Off the top of my head: registry redirection and file redirection are the only problems I ran into, and only because our application was doing some direct registry/file access. You might also have problems if you make assumptions about memory layout/availability (32 bit apps can have more on a 64 bit OS), but that would be rare. Nothing else comes to mind. –  Nick Sep 30 '10 at 7:12
    
I am interested in "registry redirection and file redirection", could you describe more what do you mean redirection here? –  George2 Sep 30 '10 at 7:29
    
@George - check the conversation in the comments on my answer here, they might be helpful. But basically 64-bit Windows intercepts and redirects certain requests from 32-bit applications (think program files vs program files (x86). –  DMA57361 Sep 30 '10 at 11:51
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.