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 :

Traduction c++ delphi [FAQ]


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut Traduction c++ delphi
    comment je peux traduire en delphi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    #ifndef _VER
    #define LRLIB_C_API extern "C"
    #else
    #define LRLIB_C_API
    #endif

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut


    un truc dans ce genre le seul probleme
    c'est que le extern "C" indique si la methode
    vient de l'exterieur ou pas dans ton cas je pense que tu peut l'oublier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {$ifndef _VER}
     const 
        LRLIB_C_API := 'extern "C"' ;<== ???
    {$else}
     const 
        LRLIB_C_API := ''; <== ???
    {$endif}
    @+ Phil

  3. #3
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut
    en faite je traduit des .h pour charger une DLL ecrite en C++ dans delphi ,
    donc je pense que j'en aurai besoin non ?

  4. #4
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut
    et pour traduire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    const char *OmPlrGetErrorStringA(OmPlrError error);
    const wchar_t *OmPlrGetErrorStringW(OmPlrError error);
     
    #ifdef UNICODE
    #define OmPlrGetErrorString OmPlrGetErrorStringW
    #else
    #define OmPlrGetErrorString OmPlrGetErrorStringA
    #endif
    j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      OmPlrGetErrorStringA: function(error: OMPLRERROR): PCHAR ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
    var
      OmPlrGetErrorStringW: function(error: OMPLRERROR): WCHAR_T ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
     
    {$IFDEF UNICODE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringW;
    {$ELSE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringA;
    {$ENDIF}
    mais ca compile pas !

  5. #5
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par coax81 Voir le message
    mais ca compile pas !
    Et ça dit quoi ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  6. #6
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut
    il dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Pas assez de paramètres originaux
    pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const
      OmPlrGetErrorString = OmPlrGetErrorStringA;

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Mui,
    Citation Envoyé par coax81 Voir le message
    et pour traduire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    const char *OmPlrGetErrorStringA(OmPlrError error);
    const wchar_t *OmPlrGetErrorStringW(OmPlrError error);
     
    #ifdef UNICODE
    #define OmPlrGetErrorString OmPlrGetErrorStringW
    #else
    #define OmPlrGetErrorString OmPlrGetErrorStringA
    #endif
    j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      OmPlrGetErrorStringA: function(error: OMPLRERROR): PCHAR ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
    var
      OmPlrGetErrorStringW: function(error: OMPLRERROR): WCHAR_T ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
     
    {$IFDEF UNICODE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringW;
    {$ELSE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringA;
    {$ENDIF}
    mais ca compile pas !
    Aïe.

    Attention à ne pas confondre les constantes de Delphi et le travail du pré-processeur C ou C++

    Pour Delphi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const
      OmPlrGetErrorString = OmPlrGetErrorStringW;
    signifie que tu crées un constante OmPlrGetErrorString qui prend la valeur OmPlrGetErrorStringW.
    Et bien entendu, comme OmPlrGetErrorStringW est en fait une fonction, Delphi ne veut pas de cette définition.

    Il n'y a rein qui remplacer aussi simplement un #define du C ou C++, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define OmPlrGetErrorString OmPlrGetErrorStringW
    qui est une directive pour le pré-compilateur, l'informant de remplacer toutes les occurrences de OmPlrGetErrorString par OmPlrGetErrorStringW, cela au niveau élémentaire du texte du code source, avant que la compilation proprement dite sit effectuée.

  8. #8
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par droggo Voir le message
    Il n'y a rein qui remplacer aussi simplement un #define du C ou C
    Bin, l'équivalent Delphi, c'est pas {$DEFINE} ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Mui,
    Citation Envoyé par coax81 Voir le message
    et pour traduire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    const char *OmPlrGetErrorStringA(OmPlrError error);
    const wchar_t *OmPlrGetErrorStringW(OmPlrError error);
     
    #ifdef UNICODE
    #define OmPlrGetErrorString OmPlrGetErrorStringW
    #else
    #define OmPlrGetErrorString OmPlrGetErrorStringA
    #endif
    j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      OmPlrGetErrorStringA: function(error: OMPLRERROR): PCHAR ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
    var
      OmPlrGetErrorStringW: function(error: OMPLRERROR): WCHAR_T ;cdecl  {$IFDEF WIN32} stdcall {$ENDIF};
     
    {$IFDEF UNICODE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringW;
    {$ELSE}
    const
      OmPlrGetErrorString = OmPlrGetErrorStringA;
    {$ENDIF}
    mais ca compile pas !
    Aïe.

    Attention à ne pas confondre les constantes de Delphi et le travail du pré-processeur C ou C++

    Pour Delphi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const
      OmPlrGetErrorString = OmPlrGetErrorStringW;
    signifie que tu crées un constante OmPlrGetErrorString qui prend la valeur OmPlrGetErrorStringW.
    Et bien entendu, comme OmPlrGetErrorStringW est en fait une fonction, Delphi ne veut pas de cette définition.

    Il n'y a rein qui remplacer aussi simplement un #define du C ou C++, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define OmPlrGetErrorString OmPlrGetErrorStringW
    qui est une directive pour le pré-compilateur, l'informant de remplacer toutes les occurrences de OmPlrGetErrorString par OmPlrGetErrorStringW, cela au niveau élémentaire du texte du code source, avant que la compilation proprement dite soit effectuée.

Discussions similaires

  1. Encore un problème de traduction C++ delphi
    Par chuck33 dans le forum Langage
    Réponses: 5
    Dernier message: 12/09/2007, 14h14
  2. Traduction en Delphi d'une structure
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 14/06/2007, 00h07
  3. Traduction C++/Delphi DLL et function Callback
    Par Crafton dans le forum Langage
    Réponses: 12
    Dernier message: 23/02/2006, 09h55
  4. TRaduction C++ => Delphi VOID ??
    Par escafr dans le forum Langage
    Réponses: 6
    Dernier message: 20/02/2003, 10h39
  5. traduction en delphi "reinterpreted cast"
    Par Chupakabra dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2003, 15h49

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