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 :

Problème installation TDLPortIO avec C++ Builder 2010


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut Problème installation TDLPortIO avec C++ Builder 2010
    Bonjour,

    Comme dit dans le titre, je n'arrive pas à installer le composant TDLPortIO sur C++ Builder 2010.

    Avant je travaillais sous Builder v6 et il était possible d'ouvrir le fichier .bpk présent dans le dossier de ce composant.
    Ensuite il n'y avait plus qu'à cliquer sur "install" et op le composant était installé.

    Mais avec BCB 2010, je peux ouvrir le .bpk, il me demande de faire la mise a niveau, je met ok, mais à la compilation j'ai des erreurs:

    [BCC32 Erreur] Ldriver.cpp(101): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    [BCC32 Erreur] Ldriver.cpp(159): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    [BCC32 Erreur] Ldriver.cpp(199): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    [BCC32 Erreur] Ldriver.cpp(235): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    [BCC32 Erreur] Ldriver.cpp(269): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    Savez-vous ce que je peux faire ? installation "manuelle" ? (si oui, comment ?) etc.


    Merci par avance,
    Cordialement,
    Benjamin.



    --------------- EDIT --------------------

    J'ai trouvé comment créer un package manuellement, mais au final j'arrive au même problème "Ambiguïté entre ..."

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello,

    Remplace lespar des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IntToStr((int)dwStatus);

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Ton BPK et le code source sont ceux des C++Builder 6 ?
    Si oui, ils sont dans en AnsiString !
    Il faut penser que le type String par défaut de C++ Builder 2010 est l'UnicodeString et qu'il y a du coup des conversions implicites lors d'affectation de l'une vers l'autre et réciproquement !

    Totoche ? Tu semble le connaître ? tu as une précision à ce sujet ?

    Tu pourrais avoir aussi des Surprises, si tu mélangeais du Char et du char (voir les options de compatibilité Unicode du Projet, il me semble qu'un projet mis à jour reste Ansi, et qu'un nouveau Projet est automatiquement Unicode, de quoi s'arracher les cheveux ! non ?)

    Est-ce ce TDLPortIO ?
    Semble qu'il soit bien vieux !
    Par contre, je ne le connais pas, mais cela semble DLL et OCX, il doit être possible d'utiliser une version compilé en V6 et de l'invoquer en 2010 ?
    Sans devoir recompiler les sources !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Totoche ? Tu semble le connaître ? tu as une précision à ce sujet ?
    Ben non, je le connaissais pas 5 minutes avant de le télécharger, de le compiler, de voir le message d'erreur, etc etc.

    Allez, pour le fun, et pour en rajouter une couche sur ce que dit DjmSoftware:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
      int i1;
      __int64 i2;
      DWORD i3;     // typedef unsigned long
      long i4;
      long int i5;
      long long i6;
      unsigned int i7;
     
      String chaine;
     
      chaine = IntToStr(i1);
      chaine = IntToStr(i2);
      chaine = IntToStr(i3);  // BCB2010: Erreur E2015, BCB6/BCB2007: OK
      chaine = IntToStr(i4);  // BCB2010: Erreur E2015, BCB6/BCB2007: OK
      chaine = IntToStr(i5);  // BCB2010: Erreur E2015, BCB6/BCB2007: OK
      chaine = IntToStr(i6);
      chaine = IntToStr(i7);  // BCB2010: Erreur E2015, BCB6/BCB2007: OK
    }
    Donc maintenant pour le compilo int != long et int != unsigned int (voir aussi ceci).

    Pour unsigned, ok, mais pour long, ce n'est pas ce que dit la doc. Plus particulièrement ceci:
    The compiler regards the types int and long as equivalent, both being 32 bits.
    Bah...

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    ce composant a été développé avec une ancienne version de C++ Builder
    a l'époque les int 64 bits n'étaient pas supportés par le compilateur

    pour résoudre ce genre de conflit il faut tout simplement lire les informations retournées par le compilateur

    ex:
    [BCC32 Erreur] Ldriver.cpp(235): E2015 Ambiguïté entre '_fastcall Sysutils::IntToStr(int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2093' et '_fastcall Sysutils::IntToStr(__int64) at c:\program files\embarcadero\rad studio\7.0\include\vcl\Sysutils.hpp:2096'
    le compilateur nous informe qu'il ne sait pas quelle type de variable utiliser
    int 32 Bits
    _int64 64 bits
    il suffit de le renseigner par ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    IntToStr((int)dwStatus); // cast de la variable en 32 bits
     
    //ou
    IntToStr((_int64)dwStatus); // cast de la variable en 64 bits
     
    // ou il serait également possible de modifier le type de la variable dwStatus
    de DWORD en int ou en long
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Tient, en même temps, voilà DJMSoftware, l'auteur du TDLPortIO, il devrait pour répondre à mes interrogations et apporter une solution efficace à H3xor

    le __int64 existait en BCB5 et BCB6 (puisqu'il déjà existait en Delphi 4), c'est curieux ou le compilateur est plus sensible ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut ShaiLeTroll,

    Effectivement mea-culpa une version de intToStr(__int64)existait bien dans c++ Builder6
    Par contre le message d'erreur du compilateur est clair, il ne s'agit pas d'un problème de conversion en AnsiString ou en UnicodeString.

    mais uniquement du fait que le compilateur BCC 32 exige de connaître avec exactitude le type exact de la variable

    Les version précédentes du compilateur ne faisait probablement pas la différence entre un int et __int64

    Cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. Problème installation php avec Apache
    Par DreammyKetty dans le forum Apache
    Réponses: 3
    Dernier message: 15/05/2008, 21h54
  2. Problème de compilation avec Flex Builder 3 plug-in
    Par Vinnie_466 dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 02/04/2008, 11h14
  3. [Vista] Problème de compatibilité avec C++ Builder
    Par simplexieum dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/03/2008, 00h10
  4. Réponses: 2
    Dernier message: 08/08/2006, 09h48
  5. problème installation XMLRAD avec Apache
    Par cdevl dans le forum XMLRAD
    Réponses: 1
    Dernier message: 15/12/2005, 09h47

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