|
Navigation: Commands and Procedures > 64-bit vs. 32-bit |
![]() ![]()
|
Visual Build (the GUI and Console apps and COM object model) is a 32-bit application, and it is also compatible with 64-bit editions of Windows via the WoW64 subsystem.
File System
Visual Build is able to call 64-bit executables, but Windows does implement file system redirection from %WINDIR%\System32 to %WINDIR%\SysWOW64 for 32-bit programs. Check the Prefer 64-bit applications application option or use %WINDIR%\Sysnative instead of %WINDIR%\System32 to run 64-bit programs in this folder or to pass this folder to another 32-bit program and prevent redirection (on Windows XP and 2003, first install the Windows hotfix that adds support for Sysnative). Other options are also available for calling programs in the %WINDIR%\System32 folder:
| 1. | Manually copy executables from %WINDIR%\System32 to another folder (using the 64-bit Explorer.exe or cmd.exe) to call them from Visual Build. |
| 2. | Run SUBST S: %WINDIR%\System32 from a 64-bit Command Prompt and then access the folder via S: from Visual Build. |
| 3. | Create an NTFS junction point that points to the %WINDIR%\System32 folder. Access the NTFS junction point instead of %WINDIR%\System32. |
Note: To call the 64-bit version of cmd.exe when using the DOSCMD system macro or the Command to run before main command field on the advanced tab of the Run Program and derived actions, check the Prefer 64-bit applications application option or create a COMSPEC global macro with a value of %WINDIR%\Sysnative\cmd.exe.
Registry
On 64-bit editions of Windows, some portions of the registry are redirected or reflected for 32-bit applications. Options for accessing the 64-bit registry view:
| 1. | Use the Access 64-bit registry view option of the Read Registry and Write Registry actions. |
| 2. | From script code, call the vbld_ReadRegHKLM64 system script function. |
| 3. | Use registry locations that are shared by 32- and 64-bit applications. |
| 4. | Call the 64-bit %WINDIR%\Sysnative\reg.exe from a Run Program action (see above). |
COM
The Visual Build object model is based on COM and is implemented as 32-bit components, so it can only be called from 32-bit applications. The 32-bit version of ASP.NET can be used to call the Visual Build object model from ASP.NET (see the WebLauncher sample).