ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / Developing an application or website / 64-bit mode
  • Overview
  • How to?
  • Enabling the 64-bit mode
  • Compilation error management mode
  • Compilation errors specific to the 64-bit mode
  • Deploying a site compatible with the 64-bit mode
  • Limits
  • Different limitations
  • Registry and system files
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Overview
Modern computers (servers and desktop computers) are equipped with 64-bit operating systems.
The main difference between a 32-bit and a 64-bit system is that in 64-bit, applications and the system are no longer limited in terms of memory allocation.
In "32-bit" configurations the operating system is limited to 4 GB, while in "64-bit", there is nearly no limit (18 billion GB).
How 32/64-bit sites work: A 64-bit site can be used with either a 32-bit or 64-bit server. A 64-bit server can only display 64-bit sites. If the site was not generated in 64-bit, an error will occur when the site is started.
How to?

Enabling the 64-bit mode

To switch a WEBDEV website from 32-bit to 64-bit:
  1. Open the 32-bit WEBDEV project in the editor.
  2. Display the description of the project configuration corresponding to the site: in the "Project Explorer" pane, display the "Configurations" context menu and select "Description".
  3. In the "Options" tab, check the "Enable compiler errors for 64-bit compatibility" option if necessary.
  4. Validate.
Note By default, sites are created with the 64-bit option enabled.

Compilation error management mode

64-bit errors are enabled by default for sites, components, libraries and web services.

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. On 64-bit machines, pointers take up 8 bytes of memory, whereas on 32-bit machines, they take up 4 bytes. 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, simply use the WLanguage type System Integer: this type uses an 8-byte integer in 64-bit format and a 4-byte integer in 32-bit format!
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-bit, if a value that is too large is assigned to a 1, 2, 4 or 8-byte Integer variable, the value of the variable will not be the same as in 32-bit.

Deploying a site compatible with the 64-bit mode

Deploying a 64-bit compatible site is done in the same way as for a 32-bit site: under the "Project" pane, in the "Generation" group, pull down "Deploy site".. For more details, see Deploying a WEBDEV website.
Note: A site compiled in 64-bit mode can be used with a 32-bit or 64-bit server. A 64-bit server can only display 64-bit sites. If the site was not compiled with the "64-bit" option, an error will be displayed when the site is started.
Limits

Different limitations

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

Registry and system files

  • registry: On a 64-bit system, 32-bit applications write to the registry from the following branch: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • Access to system files: On a 64-bit system, 32-bit applications use different system directories.
    For example, 64-bit executables can access the "\Windows\system32\" folder.
    However, 32-bit executables will access the "\Windows\SysWOW64" folder.
Minimum version required
  • Version 11
Comments
Click [Add] to post a comment

Last update: 10/08/2024

Send a report | Local help