Création de dll !!!

Signaler
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003
-
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003
-
Je veux réaliser une dll en vb, et j'ai besoin de passer des contrôles en paramètre d'une fonction. Mais lorsque je compile, il m'indique qu'il ne peut y avoir d'objet privé passer en paramètre d'une fonction... un truc du genre quoi. Par contre si je vire uniquement les contrôles passés en paramètre, là ça fonctionne. Malheureusement, il faut absolument que je récupère ses contrôles en paramètre. Existe-t-il une alternative à ce problème ?

Merci d'avance pour vos réponses !

3 réponses

Messages postés
360
Date d'inscription
vendredi 24 août 2001
Statut
Membre
Dernière intervention
9 juillet 2008
3
Yep, mettre en public de ta classe la déclaration explicit de ton contrôle (si ce n'est pas un contrôle standard vb)
Si c pas ca, file moi la syntaxe qui plante.

==============
Site Web de JDPROG
Présentation de MP3 Index
Logiciel d'indexation de fichier MP3

http://jdprog.fr.st
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Sinon, tout dépend des fonctions que tu veux faire sur ton contrôle, car si tu veux juste y appliquer des api, tu n'aura besoin que du handle du contrôle, et là, c'est facile de le passer en paramètre (type Long).

DARK SIDIOUS
0
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003

Voici une des fonctions qui est la cause de l'erreur, et qui est donc placée dans le module de classe de la DLL:

Public Sub ShellContextMenu(currentControl As Control, hwndFeuille As Long, X As Single, Y As Single, Shift As Integer)
'
' exemple d'utilisation
if typeof currentControl is listView then
strItem = currentControl.selecteditem.text
elseif typeof currentControl is listBox then
'...
end if
'
end sub

Voici l'erreur exacte :

"Erreur de compilation:

Des modules d'objets privés ne peuvent être utilisés dans les modules d'objets publics comme types renvoyés ou paramètres pour les procédures publiques, comme membres de données publics ou comme champs de types publics définis par l'utilisateur"

Etant donné que j'ai besoin d'utliser, très souvent, les propriétés du contrôle visé (currentControl), je ne vois pas comment procéder pour remplacer le paramètre "currentControl as control" qui pose problème dans la procédure.
0