IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Debutant recherche utilisation variable système


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [RESOLU]Debutant recherche utilisation variable système
    en fait je lance un executable depuis une macro cette *.exe est fait sous builder. et il a besoin de connaitre certain parametres specifier dans des classeur excel, d'ou l'utilisation d'une variable d'environnement systeme qui est deja utilise par fichier bat, pour connaitre le chemin ou se trouve ses classeurs...
    merci pour l'aide, car j'ai beau cherche j'ai pas trouvé grand chose à m'en grand regret, peut-être ai-je mal cherche...
    merci d'avance

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    j'ai trouvé une solution mais elle me génere une erreur
    en fait pour connaitre la valeur d'une variable d'environement il existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetEnvironmentVariable("Outils")
    mais lorsque je compile j'obtiens une erreur si on pourvait m'aide serait sympa...
    l'erreur est :

    [C++ Warning] Unit1.cpp(5): W8058 Cannot create pre-compiled header: header incomplete
    [Linker Error] Unresolved external '__fastcall Sysutils::GetEnvironmentVariableA(const System::AnsiString)' referenced from I:\STAGE\EN ELLABORATION\UNIT1.OBJ

    :

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 38
    Points : 46
    Points
    46
    Par défaut
    Tu dois inclure SysUtils dans l'entête de ton unit.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    oui j'ai inclut SysUtils.hpp, car il n'existe pas de SysUtils.h
    mais l'erreur est toujours la
    ...

  5. #5
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    L'include n'est pas nécessaire, ces "include" de base sont déjà inclus ailleurs et font toujours partie d'un projet C++ Builder.

    C'est probablement un bug car il y a un conflit entre GetEnvironmentVariable qui se trouve dans SysUtils.hpp et GetEnvironmentVariableA qui se trouve dans winbase.h (inutile d'écrire ces "include" qui se trouvent déjà ailleurs, peu importe où) du fait qu'on donne une égalité fautive dans winbase.h entre ces deux noms alors que les prototypes diffèrent.

    Rajouter un A à GetEnvironmentVariable, mettez votre curseur sur ce mot, une bulle d'aide vous indique que ce nom se trouve dans winbase.h. Appuyez sur Ctrl (contrôle) avec le curseur sur ce mot puis cliquez, C++ Builder charge le bon fichier (donc winbase.h) et vous montre la déclaration. Vous voyez que le prototype diffère (deux char* et un entier).

    À mon avis vous pouvez supprimer les lignes dans winbase.h qui donnent une égalité entre GetEnvironmentVariable et GetEnvironmentVariableA puisque cette égalité est fausse. Dans ces conditions, vous pourrez utiliser GetEnvironmentVariable car le protoptype n'est plus en conflit avec celui de winbase.h, sinon, si vous ne voulez pas toucher à winbase.h en supprimant cette égalité fautive, utilisez alors GetEnvironmentVariableA de winbase.h avec le bon prototype et ça marchera.

    C'est fou qu'il faille débuger les headers mais ce n'est ni la première fois ni la dernière.

    À bientôt
    Gilles

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci, maintenant, je comprends nettement mieux...
    effectivement la seule solution consiste à supprimer l'égalité dans le winbase.h

    il est clair que les bug y en a qlq uns (bande de )
    , on peut en passer du temps à trouver nos erreurs alors qu'elle ne viennent parfois meme pas de nous ...
    , en tout cas merci encore pour l'aide... car il est clair que j'aurais jamais pu trouver tout seul

    il m'erite vraimenent le

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/07/2013, 11h58
  2. Utilisation de variables système dans about.ini pour plugin
    Par Invité dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 01/02/2013, 13h49
  3. Réponses: 1
    Dernier message: 22/04/2010, 16h09
  4. Réponses: 5
    Dernier message: 20/09/2006, 13h16
  5. [Debutant(e)]Utiliser une autre machine virtuelle
    Par gooser2000 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/06/2004, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo