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

Langage Delphi Discussion :

[DCC Erreur] XSystem.pas(10038): E2010 Types incompatibles : 'PWideChar' et 'PAnsiChar'


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut [DCC Erreur] XSystem.pas(10038): E2010 Types incompatibles : 'PWideChar' et 'PAnsiChar'
    Bonjour à tous;
    En voulant compiler le paquet dclXML.bpl (xmlrad.sourceforge.net)sous Delphi XE j'ai le message suivant [DCC Erreur] XSystem.pas(10038): E2010 Types incompatibles : 'PWideChar' et 'PAnsiChar'
    à l'emplacement suivant;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Escape char -> continue
        end else if C = 's' then       
        begin
          if ArgIndex > High(Args) then
            raise Xcpt.CreateFmt('XFormat - ArgIndex[%d] exceeds High(Args)[%d]', [ArgIndex, High(Args)]);
          XAppendPXChar(Result, Args[ArgIndex].VPChar);
          Inc(Index1);
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    XMLRad c'est un peu vieux !
    Je ne suis pas convaincu qu'il existe une version Unicode de cet outil !
    Il semble un peu abandonné, dommage, c'était une bonne idée, un ancien collègue aimait bcp cette technologie !
    J'ai participé à la version 4 d'un Framework PHP pour générateur d'application Web, une idée similaire utilisant dans les version 2 et 3, bcp de tables en DB, Framework totalement repensé en XML\XSLT en version 4, mais 5 ans après la quasi-disparition de XMLRad !

    Tu vas devoir reprendre les sources, changer le String en AnsiString (car devenu implicement UnicodeString depuis 2009), et cela en fonction du contexte !
    Idem PChar en PAnsiChar (implicitement devenu PUnicodeChar)
    Chanqer les Appels aux API windows en ajoutant A ou W aussi !
    Là, je suppose que c'est peut-être même le type Variant ou TVarData, ou un type similaire de XMLRad qui est en cause !

    C'est un très gros travail !
    Je serais toi, je conserverais XMLRad en version 2005 ou 2007, en essayant de déporter un maximum de traitement dans des objets COM ou ActiveX codé en XE

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    XMLRad c'est un peu vieux !


    Tu vas devoir reprendre les sources, changer le String en AnsiString (car devenu implicement UnicodeString depuis 2009), et cela en fonction du contexte !
    Idem PChar en PAnsiChar (implicitement devenu PUnicodeChar)
    Chanqer les Appels aux API windows en ajoutant A ou W aussi !
    Là, je suppose que c'est peut-être même le type Variant ou TVarData, ou un type similaire de XMLRad qui est en cause !

    C'est un très gros travail !
    Je serais toi, je conserverais XMLRad en version 2005 ou 2007, en essayant de déporter un maximum de traitement dans des objets COM ou ActiveX codé en XE

    Malheureusement, j'ai un gros projet personnel écrit en Xmlrad2005 avec Delphi7 que je désoire migrer sous Delphi XE et la version opensource XMLRAD.
    J'ai l'impression que t'après tes dires la migration risque d'etre prise de tête et laborieuse.


    Merci pour ta réponse.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Avant de te lancer, prend contact avec la communauté XMLRad sur SourceForge !
    Cherche dans le code (.pas ou .inc) le texte "$IFDEF VER" quel est le plus grand chiffre après VER ?

    Déjà, le fait que Delos aie ouvert en 2009 à l'OpenSource, cela sent qu'ils n'avaient pas envie de le faire évoluer eux-même, vu l'investissement en temps qu'il aurait fallu pour un vrai passage Unicode !

    Conserve une copie intacte des sources de XMLRad !
    Dans le code, dans tous les fichiers pascal, remplace Char par AnsiChar, String par AnsiString, PChar par PAnsiChar ... un éditeur comme UltraEdit permet de remplacer dans plusieurs fichers simultanément !
    Essaye de compiler !

    Cela sera une migration Unicode à l'arrache !
    Il te faudra passer manuellement sur les appels d'API Windows, en ajoutant A après le nom de la fonction pour forcer l'ANSI ...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Cherche dans le code (.pas ou .inc) le texte "$IFDEF VER" quel est le plus grand chiffre après VER ?
    {$IFDEF VER190} // Delphi 2008
    {$DEFINE VCL9}
    {$ENDIF}


    Citation Envoyé par ShaiLeTroll Voir le message
    Cela sera une migration Unicode à l'arrache !
    C'est mieux que rien...si cela fonctionne.

    Je vais essayer tes conseils pour remplacer l'ensemble des String.
    Une bonne nuit en perspective...

    Merci.

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

Discussions similaires

  1. type incompatible string et PAnsiChar
    Par michel71 dans le forum Débuter
    Réponses: 4
    Dernier message: 10/04/2012, 13h56
  2. Réponses: 0
    Dernier message: 31/05/2011, 00h34
  3. Réponses: 6
    Dernier message: 08/10/2009, 22h32
  4. erreur : type incompatible
    Par keibenoit dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h39
  5. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 21h06

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