Vista Sp2 32-bit (x86)

0 views
Skip to first unread message

Jenette Bregantini

unread,
Aug 5, 2024, 8:21:32 AM8/5/24
to voahancuma
Ineed to convert our current development environment from Windows XP 32-bit to Windows Vista 64-bit (*). Naturally, I've run into plenty of places in our build system where hardcoded paths were problematic (e.g. "C:\Program Files" becoming "C:\Program Files (x86)"). Fortunately, there is a %ProgramFiles% environment variable which maps to the proper directory based on the source process (32-bit or 64-bit). So I updated the build scripts with %ProgramFiles%, and I was sure it'd be the end of that.

The problem:On one specific machine (namely my dev machine at work), it turns out that C:\Windows\System32\cmd.exe is actually a 32bit process, so the scripts find the x86 version of the Program Files directory and everything works great.


On every other 64bit machine I can find (including my home machine), C:\Windows\System32\cmd.exe is the 64bit version, and the 32bit version is in C:\Windows\SysWow64\cmd.exe. So the build scripts can't find anything they're looking for and fail.


The question is, what happened to the machine where this is not true? Why am I getting a 32bit cmd.exe by default on one machine but not on others? In all cases I am explicitly executing C:\Windows\System32\cmd.exe from the StartRun menu but getting different results on one machine only. All are running the same edition of Vista 64bit.


(*) Please accept that I must do this. I am not at liberty to say why I am doing this. Re-installing the OS and everything from scratch would probably work, but it is surely overkill. Besides, it was hard enough convincing our IT department to give out Vista machines!


I have finally found the problem, and as expected it is quite simple: user error. Explorer (which is itself a 64-bit process on Windows Vista 64-bit) launches 64-bit command prompts by default. If you want a 32-bit CMD.EXE, you must explicitly reference C:\Windows\SysWoW64\CMD.EXE.


The reason this worked fine on my system is that I use Far Manager for most of my command-line usage, which is 32-bit (therefore it launches 32-bit command prompts). When I verified I must have confused a 32-bit window for a 64-bit window (after all they look the same!) and asked a stupid question.


On my work machine, it launches the 32bit version (as demonstrated by the Task Manager, it has *32 appended to the name in the Processes tab). On all other Vista 64 machines I've tried, this launches the 64bit version of cmd, and I cannot find a rational explanation for this behavior.


Instead of %ProgramFiles%, isn't there a %Programfiles(x86)% that always goes where you want, regardless of which cmd.exe is running? My Windows XP 64-bit systems all have that; excuse me for not taking the time to boot up a Vista system.


One issue that you may have is, if running a local license manager and the license is locked to a USB dongle, you will need to download and install the 64-bit dongle drivers from the Aladdin site, look for the HASP 4 drivers. (Only the 32-bit version of the USB dongle drivers are on the media, the later installer at the Aladdin site has both and will install the correct driver)


Also, if you are running CIS, you need to get to the 32-bit version of the ODBC Admin tool, the 64 bit Control Panel link runs the 64-bit version which, pretty much, only supports SQL Server as an ODBC data source. I think this is in the SYSWOW64 directory but check the Microsoft site for ODBC, Access and Vista 64, again, I think it's odbccad32.exe you need.


One other item, when you configure the browser for html content in the Help System, ensure that you get the 32-bit (x86) version, rather than the "default" 64-bit version of IE - the html content won't be affected but the demos and movies that use flash will need the plug-in and, as far as I am aware, there is no 64-bit version available.


Basically the software seems to install. When running it however CIS does not come up, just Capture (does not seem to recognize that CIS is available). I am using my Windows Server as the dongle liucense holder, and the license is appropriately located.

3a8082e126
Reply all
Reply to author
Forward
0 new messages