DLL

kahlouni Messages postés 8 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 juin 2005 - 9 janv. 2005 à 12:47
cs_saida82 Messages postés 1 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 24 mars 2006 - 24 mars 2006 à 11:57
Comment Enregistrer des DLL Avec VB Sans Utiliser Regsvr32.exe ?

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 13:14
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]
0
kahlouni Messages postés 8 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 juin 2005
9 janv. 2005 à 20:08
Merci DARKSIDIOUS
Un Exemple Complet SVP ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 20:12
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]
0
kahlouni Messages postés 8 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 juin 2005
9 janv. 2005 à 21:12
Merci DARKSIDIOUS
0

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

Posez votre question
kahlouni Messages postés 8 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 juin 2005
9 janv. 2005 à 21:19
Et Pour les OCX, La Même Chose ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 21:50
Exactement la même chose normalement !


DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 21:50
Exactement la même chose normalement !


DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
0
cs_saida82 Messages postés 1 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 24 mars 2006
24 mars 2006 à 11:57
Bonjour,
C'est quoi le Me.Hwnd dans le code , il ne me l'accepte pas! (j'utilise VB 6)

Saida
0
Rejoignez-nous