views:

1859

answers:

9

I would think maybe it might make MORE sense to put 64bit apps into "Program Files (x64)" and leave 32bit apps to run in "Program Files" .. maybe I'm too dumb to get it...

EDIT: I have a batch file that need to run FLEX compiler. in X64 that program is in "Program Files (x86)" on Vista 32 bit it's in "Program Files" .. environment variables ? .. check it:

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

oye .. what do i do ?

+1  A: 

x86 is commonly assumed to be 32-bit unless you specify x86-64. Why do they need their own program files directories anyway?

Alex Gaynor
yeah .. that's a better question . !! damn what an annoyance
Scott Evernden
I don't know, I prefer having them separate (it just seems neater). Though it would be better if they were both subfolders of "Program Files".
Sumudu Fernando
A: 

Cos Microsoft loves making things more complex for people....rather than simplifying the transition to 64-bit, they made it divided and difficult.

CVertex
Yes, they hate you so much. **sigh**
FlySwat
I never said they hated me, But I wish they succeeded to avoid the 64bit forking of absolutely everything.
CVertex
+1  A: 

uh... i think x86 refers to the Intel processor architecture, e.g. 8086, 80286, 80386, 80486, 80586

80386 was the first 32-bit instruction set

see wikipedia

EDIT: ah, clarified the question

see http://stackoverflow.com/questions/194157/c-how-to-get-program-files-x86-on-vista-x64

Steven A. Lowe
+4  A: 

That's nothing. Guess what \Windows\System32 contains? That's right, 64-bit dlls. So where did they decide to put 32-bit legacy dlls? \Windows\SysWOW64 of course.

The problem is while there are built-in facilities for Windows applications to discover the location of system directories, many applications don't use them. And since Microsoft, above all else, is a slave to backwards compatibility we get stupid stuff like this.

Adam Lassek
Just love those Windows consistencies. Also, in 64-bit Task Manager, 32-bit processes are suffixed with "*32", instead of "x86"
Gordon Bell
Is this an answer?
Aidan Ryan
@ajryan Sure it was, to his original question. Many software vendors hardcode things they shouldn't, and MS is pathologically averse to breaking changes.
Adam Lassek
+1  A: 

EDIT: I have a batch file that need to run FLEX compiler. in X64 that program is in "Program Files (x86)" on Vista 32 bit it's in "Program Files" .. environment variables ? .. check it:

Use the %ProgramFiles% environment variable and skip all this hassle.

Paul Betts
flex compiler isn't under %ProgramFiles% .. its under %ProgramFiles(x86)% but only on vista x64
Scott Evernden
Yes, but if you're running under a 32-bit context, %ProgramFiles% points toward the x86 folder
Paul Betts
+2  A: 
set mxmlc="%ProgramFiles(x86)%\Adobe\Flex Builder 3\sdks\3.1.0\bin\mxmlc.exe"
if NOT EXIST %mxmlc% set mxmlc="%ProgramFiles%\Adobe\Flex Builder 3\sdks\3.1.0\bin\mxmlc.exe"

tnx

Scott Evernden
+5  A: 

To make it portable:

SET ExecPath=%ProgramFiles(x86)%
IF "%ExecPath%" == "" SET ExecPath = "%ProgramFiles%
Aidan Ryan
That sets an environment variable called "ExecPath ", including the space. You should remove the spaces around the equals sign. The value of the environment variable will also include double-quotes, which breaks your comparison.
bk1e
+1  A: 

If you really want to know ask Raymond Chen and (if you are lucky) you'll get the real answer (really!).

http://blogs.msdn.com/oldnewthing/default.aspx

Booji Boy
+1  A: 

a.) Just because the default installation location changes doesn't mean you HAVE to install stuff there, a simple registry change will make your new installs go anywhere you want. Mine all go to a separate drive, into folders of my choosing. If an application can't even keep track of it's installation path through the registry then it's probably not worth installing in the first place.

b.) I'm assuming they put 32bit apps into an x86 folder because it's not a 32 bit OS, i.e. old stuff goes here:. You wouldn't buy a new house and let your dog sleep in it while you sleep in his old dog house right? If 64bit is a step forward then why would you put the legacy software in what will continue to be the standard installation folder?

a) the question if you read it has to do with developing on different pcs that have tools installed in their default locations, which is a *different* location depending on the OSb) what would make sense if you're evolving a product is to NOT BREAK the old but create a NEW PLACE for the new.
Scott Evernden