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 :

BEGIN_OBJECT_MAP C++ en Delphi


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut BEGIN_OBJECT_MAP C++ en Delphi
    Bonjour, je suis en train de convertir une dll C++ en Delphi et j'avoue que j'ai un peu de mal, notemment avec cette partie:
    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
    22
     
    CComModule _Module;
     
    BEGIN_OBJECT_MAP(ObjectMap)
    OBJECT_ENTRY(CLSID_RemoteWMP, CRemoteWMP)
    END_OBJECT_MAP()
     
    /////////////////////////////////////////////////////////////////////////////
    // DLL Entry Point
     
    extern "C"
    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
    {
        if (dwReason == DLL_PROCESS_ATTACH)
        {
            _Module.Init(ObjectMap, hInstance);
            DisableThreadLibraryCalls(hInstance);
        }
        else if (dwReason == DLL_PROCESS_DETACH)
            _Module.Term();
        return TRUE;    // ok
    }
    C'est le point d'entrée de la Dll, _Module est de type CComModule.

    Voilà ma convertion pour l'instant
    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
     
    function DllEntry(dwReason: DWord): boolean;
    begin
      if (dwReason = DLL_PROCESS_ATTACH) then
        begin
            _Module.Init(ObjectMap, hInstance);
            DisableThreadLibraryCalls(hInstance);
        end
      else if (dwReason = DLL_PROCESS_DETACH) then
        _Module.Term();
      result := true;
    end;
     
    ...
    begin
      DllProc := @DLLEntry;
      DllEntry(DLL_PROCESS_ATTACH);
    end.
    Mes questions sont:
    Quel est l'équivalent de CComModule en delphi?
    Quel est l'équivalent du type STDAPI en delphi? (HResult peut être)
    Qqn peut-il m'expliquer cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_OBJECT_MAP(ObjectMap)
    OBJECT_ENTRY(CLSID_RemoteWMP, CRemoteWMP)
    END_OBJECT_MAP()
    Merci de votre aide.
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  2. #2
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Personne n'as une petite idée de ce que celà peux vouloir dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_OBJECT_MAP(ObjectMap)
    OBJECT_ENTRY(CLSID_RemoteWMP, CRemoteWMP)
    END_OBJECT_MAP()
    et comment passer celà en delphi.
    Quel est l'équivalent de CComModule en delphi?
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  3. #3
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 559
    Points : 3 949
    Points
    3 949
    Par défaut
    Salut

    Le peu que j'ai pratiqué en C/C++ me laisse penser que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_OBJECT_MAP(ObjectMap) 
    OBJECT_ENTRY(CLSID_RemoteWMP, CRemoteWMP) 
    END_OBJECT_MAP()
    sont des macros (tradition du langage pour leur nommage en majuscule) recherche dans les fichiers listés dans les directives include.

    CCOmModule ne me dit rien. Que fait la DLL ?

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 559
    Points : 3 949
    Points
    3 949
    Par défaut
    Ah, j'oubliais

    Tu devrais plutôt poser ta question sur le forum C++. Tu as plus de chance de trouver des réponses, au moins pour obtenir la signification du code, la conversion viendra ensuite...

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Merci e-ric d'avoir pris la peine de me répondre?
    J'avais dejà fait quelques recherches qui m'ont permis de savoir que c'était une macro mais malheureusement, je n'en sait pas plus à ce sujet.
    Et ce type CCOmModule me semble être un objet COM mais aucune idée de la méthode de traduction en delphi.
    Quelque chose me dit que je devrais voir du côté de OLECheck() mais je n'ai encore jamais vraiment utiliser les objets COM/COM+
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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