DLL

Signaler
Messages postés
8
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
14 juin 2005
-
Messages postés
1
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
24 mars 2006
-
Comment Enregistrer des DLL Avec VB Sans Utiliser Regsvr32.exe ?

8 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Il faut passer par les API Windows :



un petit exemple :

'on charge la dll

LNG_Librairie = LoadLibrary(App.Path & "\OBJ_GESTION_COULEUR.dll")



'on enregistre la dll dans la base de registre

GetProcAddress LNG_Librairie, "DllRegisterServer"



'on enregistre la dll dans la base de registre

CallWindowProc GetProcAddress(LNG_Librairie,
"DllRegisterServer"), Me.hWnd, ByVal 0&, ByVal 0&, ByVal 0&



'on libère la mémoire

FreeLibrary LNG_Librairie



'on vérifie que la dll de tracé de dégradé soit bien enregistrée dans la base de registre

Set OBJ_Objet = CreateObject("OBJ_GESTION_COULEUR.CLS_COULEURS")



Set OBJ_Objet = Nothing


DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
Messages postés
8
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
14 juin 2005

Merci DARKSIDIOUS
Un Exemple Complet SVP ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Ben ce que je t'ai donné est un exemple complet, il manque juste les déclarations des API !


Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function GetProcAddress Lib "kernel32.dll" (ByVal hModule As Long, ByVal lpProcName As String) As Long

Private Declare Function CallWindowProc Lib "user32.dll" Alias
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long,
ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long



Private Sub RegisterDll(byval sName as string)



dim hLibrary as long



let
hLibrary = LoadLibrary(
sName)

CallWindowProc GetProcAddress(
hLibrary,
"DllRegisterServer"), Me.hWnd, ByVal 0&, ByVal 0&, ByVal 0&



'on libère la mémoire

FreeLibrary
hLibrary



End Sub



A copier dans une feuille




DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
Messages postés
8
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
14 juin 2005

Merci DARKSIDIOUS
Messages postés
8
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
14 juin 2005

Et Pour les OCX, La Même Chose ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Exactement la même chose normalement !


DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Exactement la même chose normalement !


DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
Messages postés
1
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
24 mars 2006

Bonjour,
C'est quoi le Me.Hwnd dans le code , il ne me l'accepte pas! (j'utilise VB 6)

Saida