Problem de dll

TheBestofComputer Messages postés 14 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 7 février 2004 - 4 déc. 2003 à 20:20
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 4 déc. 2003 à 21:53
Je vaudrai savoir si c possible de charger et de decharger un dll pendant l'execution de lapplication.et si on peu comment?merci

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 déc. 2003 à 20:48
Tout a fait:
hlib = LoadLibrary(szname)
If hlib = 0 Then ERREUR
ici on s'en sert
ensuite on libere
FreeLibrary(hlib)

A quoi cela va-t-il te servir ? Faut ensuite obtenir les pointeurs de fonction par GetProcAddress(...) mais ser-t-il possible de s'en servir en vb ???

BruNews, ciao...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 déc. 2003 à 21:07
Va voir ma source nommée Horloge Système si tu veux un exemple concret : je charge ma dll perso de gestion de couleur dès le lancement du prog.

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 déc. 2003 à 21:25
DARKSIDIOUS, j'ai charge ta source. Je ne vois pas a quel endroit dans le code tu charges une dll.
BruNews, ciao...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 déc. 2003 à 21:40
Oups, exact BruNews : ce n'est pas la dernière version qui est sur le site !! Il va falloir que je la mette à jour !!! Celle-ci est vraiment basique !

Désolé pour les désagréments que cela à pû engendrer !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 déc. 2003 à 21:44
Bon ben voici le code qu'il faut pour enregistrer un dll dans le registre en passant uniquement par les api :
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long

    'on charge la dll
    LNG_Librairie = LoadLibrary(App.Path & "\OBJ_GESTION_COULEUR.dll")

    If LNG_Librairie = 0 Then

        'erreur dans le chargement
        MsgBox "Vérifiez la présence de la dll !"
        Exit Sub

    End If

    'on enregistre la dll dans la base de registre
    GetProcAddress LNG_Librairie, "DllRegisterServer"
    CallWindowProc GetProcAddress(LNG_Librairie, "DllRegisterServer"), Me.hWnd, ByVal 0&, ByVal 0&, ByVal 0&

    'on libère la mémoire
    FreeLibrary LNG_Librairie


DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 déc. 2003 à 21:53
Voila ce qui m'interessait, c'etait comment tu faisais avec le retour de GetGetProcAddress, en fait tu es oblige de passer par CallWindowProc. En C bien entendu on appelle direct la fonction par son pointeur sans passer par la base de registres.
Bien bien la manip vb.
BruNews, ciao...
0
Rejoignez-nous