E2172 La fonction d'aide bibliothèque nécessaire a été éliminée par le lieur (%s) (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Le débogueur intégré essaie d'utiliser certaines des fonctions d'aide du compilateur pour effectuer l'évaluation requise. Le lieur, de l'autre côté, a déterminé que la fonction d'aide n'était pas utilisée actuellement par le programme et ne l'a pas liée dans le programme.

  1. Créez une nouvelle application.
  2. Mettez un bouton sur la fiche.
  3. Double-cliquez sur le bouton pour qu'il soit pris en méthode 'click'.
  4. Ajoutez une variable globale, 'v', de type String à la section interface.
  5. Ajoutez une variable globale, 'p', de type PChar à la section interface.

La méthode click doit être lue comme suit :

  1. procedure TForm1.Button1Click(Sender: TObject); begin v := 'Initialized'; p := NIL; v := 'Abid'; end;
  2. Définissez un point d'arrêt sur la seconde assignation de 'v'.
  3. Compilation et exécution de l'application.
  4. Appuyez sur le bouton.
  5. Après que le point d'arrêt a été atteint, ouvrez l'évaluateur (Exécuter|Evaluer/Modifier).
  6. Evaluez 'v'.
  7. Mettez le curseur dans la boîte 'Nouvelle valeur'.
  8. Saisissez dans 'p'.
  9. Choisissez Modifier.

Le compilateur utilise une fonction spéciale pour copier un PChar en string. Pour réduire la taille de l'exécutable produit, si cette fonction spéciale n'est pas utilisée par le programme, elle n'est pas liée. Dans ce cas, il n'y a aucune affectation de PChar en string, aussi est-elle éliminée par le lieur.


  procedure TForm1.Button1Click(Sender: TObject);
  begin
       v := 'Initialized';
       p := NIL;
       v := 'Abid';
       v := p;
  end;

L'ajout de l'affectation supplémentaire de PChar en string garantira l'inclusion de la procédure désirée dans le programme par le lieur. Cette erreur rencontrée dans une session de débogage indique que vous utilisez certaines fonctions du langage ou de l'environnement non nécessaires dans le programme original.