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 :

Chargement / Libération de DLL


Sujet :

Langage Delphi

  1. #1
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut Chargement / Libération de DLL
    Salut

    Je n'arrive pas a trouver de réponse satisfaisante sur internet. Peut on utiliser une fonction d'une DLL après avoir libéré celle ci ?
    Je m'explique : J'ai cette variable globale a mon unité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
       DwmExtendFrameIntoClientAreaProc: function(destWnd: HWND; const pMarInset: PMargins): HRESULT; stdcall;
    et voici la partie initialization de cette unité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var DllDwmApiHandle : THandle;
     
    initialization
      DllDwmApiHandle := LoadLibrary('dwmapi.dll');
      if DllDwmApiHandle <> 0 then
      begin
        @DwmExtendFrameIntoClientAreaProc := GetProcAddress(DllDwmApiHandle, 'DwmExtendFrameIntoClientArea');
      end;
      FreeLibrary(DllDwmApiHandle);
    Peut on utiliser dans cette unité la fonction DwmExtendFrameIntoClientAreaProc (si elle est différente de nil bien sur) ? En sachant que la DLL est déja libérée dans la partie initialization ?

    J'ai testé, et ca marche. Mais je ne sais pas si c'est un coup de chance ... Sur internet, j'ai trouvé un peu de tout, donc je ne sais pas a quoi me fier ...

    Un grand merci d'avance !

    Mick605

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    C'est assurément un coup de chance...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    finalization 
      if DllDwmApiHandle <> 0 then
      begin
        FreeLibrary(DllDwmApiHandle);
      end;
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  3. #3
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Ok, merci beaucoup.

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

Discussions similaires

  1. Problèmes de libération de Dll en delphi7 sous windows XP
    Par Tardiff Jean-François dans le forum Langage
    Réponses: 5
    Dernier message: 10/01/2006, 15h30
  2. Contexte de chargement d'une DLL
    Par Guillemot dans le forum Windows
    Réponses: 2
    Dernier message: 10/07/2005, 09h34
  3. [MFC VC.NET] Chargement dynamique de DLL
    Par vanitom dans le forum MFC
    Réponses: 3
    Dernier message: 26/01/2005, 13h56
  4. Chargement d'une DLL et utilisation du multithread
    Par Maitre Kanter dans le forum Langage
    Réponses: 6
    Dernier message: 07/09/2004, 23h18
  5. Chargement dynamique de DLL sous Unix
    Par Willou dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 18/12/2002, 18h25

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