DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Gestion du 64 bits
  • Présentation
  • Comment le faire ?
  • Activer le mode 64 bits
  • Mode de gestion des erreurs de compilation
  • Erreurs de compilation spécifiques au 64 bits
  • Déployer un site compatible 64 bits
  • Limites
  • Limites diverses
  • Base de registre et fichiers système
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Les ordinateurs récents sont désormais équipés par défaut de systèmes d'exploitation "64 bits", que ce soient des machines de type serveur ou des machines de bureau.
La principale différence entre un système "32 bits" et un système "64 bits" est la suivante : en "64 bits", les applications et le système ne sont plus limités au niveau de l'allocation mémoire.
En effet, en "32 bits", le système d'exploitation est limité à 4 Go de mémoire, et en "64 bits", il n'y a quasiment plus de limite (la limite théorique est à 18 milliards de Gigas).
Fonctionnement des sites 32/64 bits : Un site compilé en 64 bits peut être utilisé avec un serveur 32 bits ou 64 bits. Un serveur 64 bits ne peut afficher que des sites 64 bits. Si le site n'a pas été généré en 64 bits, une erreur s'affichera au lancement du site.
Comment le faire ?

Activer le mode 64 bits

Pour passer simplement un site WEBDEV 32 bits en 64 bits :
  1. Ouvrez le projet WEBDEV 32 bits sous l'éditeur.
  2. Affichez la description de la configuration de projet correspondant au site. Une des méthodes suivantes peut être utilisée :
    • sélectionnez l'option "Description" du menu contextuel de la configuration de projet (dans le volet "Explorateur de projet").
    • sous le volet "Projet", dans le groupe "Configuration de projet", cliquez sur "Configuration courante".
  3. Dans l'onglet "Compatibilité", cochez si nécessaire l'option "Activer les erreurs de compilation pour la compatibilité 64 bits".
  4. Validez.
Remarque : A partir de la version 16, les sites sont créés par défaut avec l'option 64 bits activée.

Mode de gestion des erreurs de compilation

Pour les sites, composants, bibliothèques et Webservices, par défaut, les erreurs 64 bits sont toujours activées.

Erreurs de compilation spécifiques au 64 bits

Si l'application "32 bits" utilisait des API Windows ou des dll externes, le passage en mode "64 bits" peut générer des erreurs de compilation. Ces erreurs de compilation sont bien entendu spécifiques au mode "64 bits".
L'erreur la plus courante est l'utilisation d'une variable de type "entier" pour stocker une adresse mémoire. En effet, les adresses mémoires en 64 bits sont stockées sur 8 octets alors qu'en 32 bits, elles sont stockées sur 4 octets. Dans ce cas, si un entier "classique" est utilisé, l'application risque d'accéder à une adresse mémoire tronquée donc erronée.
Pour éviter ce problème, il suffit d'utiliser le type Entier Système du WLangage : ce type utilise un entier sur 8 octets en 64 bits et un entier sur 4 en 32 bits !
Conseils :
  • Pensez à vérifier que les API utilisées existent bien en version "64 bits". Pensez également à vérifier que la dll n'a pas un nom différent dans sa version "64 bits", et surtout que son fonctionnement est identique.
    En cas de différences, il est possible d'utiliser la fonction WLangage EnMode64bits pour appeler l'API correspondant au système en cours.
  • En 64 bits, si une valeur trop grande est affectée dans une variable de type Entier sur 1, 2, 4 ou 8 octets, la valeur de la variable ne sera pas la même qu'en 32 bits.

Déployer un site compatible 64 bits

Le déploiement d'un site compatible 64 bits se fait de la même façon que pour un site 32 bits : sous le volet "Projet", dans le groupe "Génération", déroulez "Déployer le site". Pour plus de détails, consultez Déployer un site WEBDEV.
Remarque : Un site compilé en 64 bits peut être utilisé avec un serveur 32 bits ou 64 bits. Un serveur 64 bits ne peut afficher que des sites 64 bits. Si le site n'a pas été compilé avec l'option "64 bits", une erreur s'affichera au lancement du site.
Limites

Limites diverses

  • La fonction Hasp n'est pas disponible en 64 bits.
  • Fonctions Netxxx : Seule la partie cliente est disponible en 64 bits, et est compatible avec un serveur 32 bits. La partie serveur (fonctions NetDémarreServeur et NetFinServeur) n'est pas disponible.
  • Langage externe 64 bits : seuls les langages C et C++ sont disponibles.

Base de registre et fichiers système

  • Base de registre : Sur un système 64 bits, les applications 32 bits écrivent dans la base de registre à partir de la branche suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • Accès aux fichiers système : Sur un système 64 bits, les applications 32 bits utilisent des répertoires système différents.
    Par exemple, un accès au répertoire "\Windows\system32\" se fera bien dans ce dossier à partir d'un exécutable 64 bits.
    Par contre, depuis un exécutable 32 bits, l'accès se fera dans le dossier "\Windows\SysWOW64".
Version minimum requise
  • Version 11
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale