PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Overview
  • How to proceed?
  • Displaying the errors of the 64-bit mode and compiling in 64-bit mode
  • Installing a WEBDEV site on a 64-bit server
  • Caution
  • How to proceed?
  • Enabling the 64-bit mode
  • Mode for managing the compilation errors
  • Compilation errors specific to the 64-bit mode
  • Deploying a site compatible with the 64-bit mode
  • Limits
  • Various limits
  • Registry and system files
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Overview
The recent computers (servers and desktop computers) are now equipped with "64-bit" operating systems.
The main difference between a "32-bit" system and a "64-bit" system is as follows: in "64 bits", the applications and the system are no longer limited regarding the memory allocation.
Indeed, in "32 bits", the operating system is limited to 4 GB while in "64 bits", there is nearly no limit (the limit is set to 18 billions GB).
Operating mode of 32-bit/64-bit sites: A site compiled in 64 bits can be used with a 32-bit server or with a 64-bit server. A 64-bit server can only display 64-bit sites. If the site was not generated in 64 bits, an error will occur when the site is started.
How to proceed?

Displaying the errors of the 64-bit mode and compiling in 64-bit mode

To display the 64-bit mode errors and compile in 64-bit mode:
  1. Display the project description ("Project .. Project description").
  2. In the "Compilation" tab, select "Execution in 64-bit mode: enable the compilation errors and the 64-bit compatibility".
  3. Validate.
WEBDEV - Server codeWindows

Installing a WEBDEV site on a 64-bit server

To install a WEBDEV site on a 64-bit server:
  1. Install a 64-bit WEBDEV application server on a 64-bit Web server.
  2. In your project, check whether the 64-bit mode is enabled (in the project description, see the above paragraph)
  3. Select "Workshop .. Create the setup procedure" and follow the different wizard steps.
Note: A site compiled in 64 bits can be used with a 32-bit server or with a 64-bit server. A 64-bit server can only display 64-bit sites. If the site was not compiled with the "64 bits" option, an error will occur when the site is started.

Caution

  • If your sites use direct calls to the Windows 32-bit APIs (API or CallDLL32, ...), you must adapt the type of parameters for these direct calls.
  • The "handles", pointers and addresses must be handled by an integer whose type is System Integer. This type of integer is used to adapt the integer used to the size of the current operating system (4 bytes for a 32-bit system, 8 bytes for a 64-bit system).
  • In 64 bits, if a too large value is assigned to a variable whose type is Integer on 1, 2, 4 or 8 bytes, the value of the variable will not be the same as in 32 bits.
How to proceed?

Enabling the 64-bit mode

To switch a WEBDEV site from 32 bits to 64 bits:
  1. Open the 32-bit WEBDEV project in the editor.
  2. Display the description of the project configuration corresponding to the site. One of the following methods can be used:
    • select "Description" from the popup menu of the project configuration (in the project explorer).
    • select "Project .. Project configurations .. Description of current configuration".on the "Project" pane, in the "Project configuration" group, click "Current configuration".
  3. In the "Compatibility" tab, check (if necessary) "Enable the compilation errors for the 64-bit compatibility".
  4. Validate.
Note: From version 16, the sites are created with the 64-bit option enabled by default.

Mode for managing the compilation errors

For the sites, components, libraries and Webservices, the 64-bit errors are always enabled by default.

Compilation errors specific to the 64-bit mode

If the "32-bit" application was using Windows APIs or external DLLs, the switch to "64-bit" mode may generate compilation errors. These compilation errors are specific to the "64-bit" mode.
The most common error consists in using an "integer" variable to store a memory address. Indeed, the memory addresses are stored on 8 bytes in 64-bit mode while they are stored on 4 bytes in 32-bit mode. In this case, if a "standard" integer is used, the application may access a truncated memory address, therefore an invalid address.
To avoid this problem, you must use the System Integer type of WLanguage: this type is using a 8-byte integer in 64 bits and a 4-byte integer in 32 bits!
Tips:
  • Don't forget to check that the APIs used exist in "64-bit" mode. And make sure that the DLL does not have a different name in "64-bit" mode and that its operating mode is identical.
    If differences are noticed, you have the ability to use In64bitMode to call the API corresponding to the current system.
  • In 64 bits, if a too large value is assigned to a variable whose type is Integer on 1, 2, 4 or 8 bytes, the value of the variable will not be the same as in 32 bits.

Deploying a site compatible with the 64-bit mode

The method for deploying a site compatible with the 64-bit mode is the same as the method for deploying a 32-bit site, via "Workshop .. Create the setup procedure". See Deploying a WEBDEV site for more details. The method for deploying a site compatible with the 64-bit mode is the same as the method for deploying a 32-bit site: on the "Project" pane, in the "Generation" group, expand "Deploy the site". See Deploying a WEBDEV site for more details.
Note: A site compiled in 64 bits can be used with a 32-bit server or with a 64-bit server. A 64-bit server can only display 64-bit sites. If the site was not compiled with the "64 bits" option, an error will occur when the site is started.
Limits

Various limits

  • Hasp is not available in 64 bits.
  • NetXXX functions: Only the client part is available in 64 bits, and it is compatible with a 32-bit server. The server part (NetStartServer and NetEndServer) is not available.
  • 64-bit external languages: only C and C++ are available.

Registry and system files

  • Registry: On a 64-bit system, the 32-bit applications write into the registry from the following branch: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • Access to the system files: On a 64-bit system, the 32-bit applications use different system directories.
    For example, an access to the "\Windows\system32\" directory will be performed in this folder from a 64-bit executable.
    On the contrary, from a 32-bit executable, the access will be performed in the "\Windows\SysWOW64" folder.
Minimum required version
  • Version 11
Comments
Click [Add] to post a comment