PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Overview
  • How to proceed?
  • Displaying the errors
  • Creating the executable
  • Installing a WEBDEV site on a 64-bit server
  • Caution
  • How to proceed?
  • Switching to 64-bit mode
  • Mode for managing the compilation errors
  • Compilation errors specific to 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 applications:
  • The 32-bit WINDEV applications operate on a 64-bit operating system without modification: executa­ble, setup, ...
  • The 32-bit applications run on a 64-bit system are indicated in the task manager. These applications are neither disrupted nor run in a compatibility mode: they are subject to the memory constraints of the 32-bit applications. This limitation is not a constraint for most of the standard applications.
How to proceed?

Displaying the errors

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.
WINDEVWindows

Creating the executable

To create an executable in 64-bit mode:
  1. Select "Workshop .. Executable .. Create the Windows executable (64 bits)".
  2. Follow the different steps of the wizard for executable creation.
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 applications are using direct calls to the 32-bit Windows system APIs (API or CallDLL32, ...), you must adapt the type of the 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?

Switching to 64-bit mode

For an application that requires a lot of memory, to prepare for the future or to specifically use 64-bit DLLs, you have the ability to easily transform a "32-bit" WINDEV application into a "64-bit" WINDEV application.
To switch a WINDEV application from 32 bits to 64 bits:
  1. Open the 32-bit WINDEV project in the editor.
  2. Create a new project configuration ("Project .. Project configurations .. New configuration"). The wizard for creating a project configuration starts. Create a new project configuration: on the "Project" pane, in the "Project configuration" group, expand "New configuration" and select "Windows executable .. 64 bits". The wizard for creating a project configuration starts.
  3. In the wizard:
    • Specify the name of the project configuration. Choose an explicit name because this name will be used to create the generation directory of the files affected by the project configuration.
      Select the type of the project configuration: "Windows 64-bit executable".
    • Select the elements (windows, queries, ...) of this new configuration. In a standard case, all the elements of the 32-bit application must be selected.
    • Validate the wizard.
  4. The project configuration is automatically created. If your development computer is in 64-bit mode, you have the ability to run the test of the 64-bit application via the 64-bit "GO" option.
See Project configurations for more details.
Note: Creating a 64-bit application only: You have the ability to define that an application is a "64-bit" application when creating the project. However, this solution is more complicated because a "64-bit" application does not operate on a "32-bit" system bur only on a "64-bit" system.

Mode for managing the compilation errors

  • For the applications and services (Windows or Linux) in 32-bit mode, the 64-bit compilation errors are disabled.
  • For the applications and services (Windows or Linux) in 64-bit mode, the 64-bit compilation errors are always enabled.
  • For the components, libraries and Webservices, the 64-bit errors are always enabled.

Compilation errors specific to the 64-bit mode

If the "32-bit" application was using Windows APIs or external DLLs, the transformation 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.
Limits

Various limits

  • The wdxxxce.dll library for accessing a Mobile application does not operate in 64 bits.
  • 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