DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Gestion des langages externes / Langage C
  • Présentation
  • Gestion des objets en langage C
  • Migrer une application WINDEV 5.5 réalisant une gestion des objets en langage C
  • Gestion des fichiers de données en langage C ou C++
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
J'utilisais le langage C avec WINDEV 5.5. Comment faire en WINDEV 2024 ?
Présentation
Il est possible d'utiliser des langages externes avec WINDEV. Pour plus de détails sur les différentes façons d'interfacer des éléments développés en WINDEV avec un langage externe, consultez les langages externes en WINDEV.
Ce paragraphe présente uniquement les différentes manipulations à réaliser pour migrer une application WINDEV 5.5 utilisant le langage C en WINDEV 2024.
Plusieurs cas sont à considérer :
  • gestion des objets en langage C
  • gestion des fichiers HFSQL en langage C ou C++
Remarques :
  • Important : Les appels DDE (par AppelDDE) en 16 bits ne sont plus disponibles dans cette version de l'interface externe.
  • Nouveau : La fonction de l'interface externe AppelWD supporte maintenant une syntaxe identique à celle de la fonction nWDExecute. Ceci permet de passer en paramètre à cette fonction une chaîne contenant directement un code WLangage standard, sans utiliser l'ancienne syntaxe du type "ECRAN,SAISIE".
Gestion des objets en langage C

Migrer une application WINDEV 5.5 réalisant une gestion des objets en langage C

Pour migrer une application WINDEV 5.5 réalisant une gestion des objets en langage C :
  1. Migrez votre projet WINDEV 5.5 vers WINDEV 7.5 puis ouvrez votre application avec WINDEV 2024.
  2. Copiez les fichiers WinDev.c et WinDev.h présents dans le sous-répertoire "External Languages\FR\C" de WINDEV dans le répertoire de votre application. Ces fichiers remplacent les fichiers existants.
  3. Supprimez les appels à la fonction APPELDDE de votre application C. Cette fonction n'était utilisable que dans les applications en mode 16 bits.
  4. La gestion des menus peut utiliser une des méthodes suivantes :
    • Récupération des raccourcis de menus avec WDTOUCHE = "*M*" :
      BOOL bFin = FALSE;
      while (!bFin)
      {
      APPELWD("Ecran,Saisie");
      if (strcmp(WDTouche,"*M*") == 0)
      {
      if (strcmp(WDChaine,"FO") == 0) OuvrirFichier;
      if (strcmp(WDChaine,"FS") == 0) SauverFichier;
      if (strcmp(WDChaine,"FQ") == 0) bFin = TRUE;
      }
    • Récupération des raccourcis de menus en gérant le raccourci directement dans l'option :
      1. Dans le code de chaque option de menu à traiter, affecter le raccourci au mot-clé WDTouche. Par exemple, pour Fichier..Ouvrir :
        WDTouche="FO";
      2. Modifier le code C de la manière suivante :
        BOOL bFin = FALSE;
        while (!bFin)
        {
        APPELWD("Ecran,Saisie");
        if (strcmp(WDTouche,"FO") == 0) OuvrirFichier;
        if (strcmp(WDTouche,"FS") == 0) SauverFichier;
        if (strcmp(WDTouche,"FQ") == 0) bFin = TRUE;
        if (strcmp(WDTouche,"ESC") == 0) bFin = TRUE;
        }
  5. Re-créez la bibliothèque de votre application WINDEV.
  6. Recompilez votre projet C.
  7. Copiez les DLL de WINDEV nécessaires dans le répertoire de l'exécutable de votre application. Attention : la DLL wdxxxle.dll est obligatoire.
Remarque : Pour connaître la liste des DLL nécessaires, créez sous WINDEV l'exécutable de votre application.
Gestion des fichiers de données en langage C ou C++
Pour migrer une application WINDEV 5.5 réalisant une gestion des fichiers de données en langage C ou C++ :
  1. Migrez votre projet WINDEV 5.5 vers WINDEV 7.5 puis ouvrez-le avec WINDEV 2024.
  2. Générez le squelette de votre application en version 2024 :
    • ouvrez l'éditeur d'analyses (bouton Charger l'analyse du projet parmi les boutons d'accès rapide).
    • sous le volet "Analyse", dans le groupe "Analyse", déroulez "Génération" et sélectionnez "Génération avancée".
      Attention : N'écrasez pas le squelette utilisé par votre application.
  3. Créez la bibliothèque de votre application WINDEV. Créez si nécessaire une configuration de projet de type "Bibliothèque" et générez cette configuration.
  4. Supprimez les fichiers WDHF5.c et WDHF5.h du répertoire de vos sources pour éviter toute confusion.
  5. Dans votre projet C, supprimez la référence de dépendance aux fichiers WDHF5.c et WDHF5.H.
  6. Copiez les fichiers suivants à partir du sous-répertoire "External Languages\FR\C" de WINDEV dans le répertoire de votre application.
    • HFConstant.h
    • HFContext.cpp
    • HFContext.h
    • IHFContext.h
    • WDHF.h
    • WDHF.cpp
    • Windev.c
    • WinDev.h
    • ProXY.h
    • Central.h
    • le fichier <Nom de l'analyse>. h généré par l'analyse WINDEV (point 2). Ce fichier est présent dans le répertoire de l'analyse du projet WINDEV.
    • le fichier <Nom de l'analyse>.cpp généré par l'analyse WINDEV (point 2). Ce fichier est présent dans le répertoire de l'analyse du projet WINDEV.
    • la bibliothèque (fichier .WDL) de l'application WINDEV.
  7. Ajoutez au projet C les fichiers suivants :
    • HFContext.cpp
    • WDHF.cpp
  8. Dans le source C original :
    • Remplacez la ligne #include "wdhf5.h" par #include"wdhf.h".
    • Remplacez les lignes #include "*.WDR" par #include"<Analyse>.h" où <Analyse> correspond au nom de votre analyse.
    • Copiez les déclarations de structure présentes dans le squelette <Analyse>.cpp en les renommant. Ces déclarations doivent être copiées juste après la ligne #include"<Analyse>.h".
      Les déclarations de structure sont de la forme :
      st<FICHIER> g<FICHIER>

      où FICHIER est le nom du fichier (en majuscules).
      Ces déclarations doivent être renommées de la manière suivante :
      st<FICHIER> <Abréviation Fichier>

      où Abréviation Fichier correspond à l'abréviation utilisée pour désigner le fichier.
    • Si votre code utilise la fonction HOuvreAnalyse, il est nécessaire de préciser l'extension du fichier de l'analyse (.WDD) dans le premier paramètre de la fonction.
    • Supprimez dans le source C les lignes de code suivantes :
      • la déclaration du tableau correspondant au contexte HFSQL.
        /* Tableau utilisé pour initialiser le contexte de HFSQL*/
        stHFFileCtx stTabCtx[]={
        { (char*)&dp,sizeof(dp),"DEPART",NULL },
        { (char*)&vi,sizeof(vi),"VILLE",NULL },
        .....
        };
        # define NBCTX (sizeof(stTabCtx)/sizeof(stHFFileCtx))
      • l'initialisation de HFSQL
        /* initialisation obligatoire de HFSQL */
        APPELWD("HFCTX");
        if (!Hinitpartage(WDLong,&stTabCtx[0],NBCTX))
        { APPELWD("Erreur,Erreur d'initialisation du contexte HF.");}

        Ce code doit être remplacé par la ligne suivante :
        bInitHF()
      • l'appel à la fonction hfTerminePartage.
    • Copiez les lignes de code suivantes présentes dans le squelette <Analyse>.cpp en les renommant. Ces lignes doivent être copiées juste après la ligne bInitHF.
      Code présent dans le squelette (il existe une ligne par fichier) :
      gclHF.bAssociate(<FICHIER>,&g<FICHIER>,sizeof(g<FICHIER>));

      où FICHIER est le nom du fichier (en majuscules).
      Ces déclarations doivent être modifiées de la manière suivante :
      bAssociate(<FICHIER>,&<Abréviation fichier>,sizeof(<Abréviation fichier>));

      où Abréviation Fichier correspond à l'abréviation utilisée pour désigner le fichier.
  9. Recompilez votre projet C ou C++.
  10. Copiez les DLL de WINDEV nécessaires dans le répertoire de l'exécutable de votre application.
    Attention : la DLL wdxxxle.dll est obligatoire.
Remarque : Pour connaître la liste des DLL nécessaires, créez l'exécutable de votre application sous WINDEV.
Version minimum requise
  • Version 9
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 08/09/2023

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