Création de dll !!!

cs_MyC Messages postés 94 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 22 avril 2003 - 28 nov. 2002 à 11:23
cs_MyC Messages postés 94 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 22 avril 2003 - 29 nov. 2002 à 09:13
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

cs_processus Messages postés 360 Date d'inscription vendredi 24 août 2001 Statut Membre Dernière intervention 9 juillet 2008 3
28 nov. 2002 à 15:33
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 nov. 2002 à 16:31
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
cs_MyC Messages postés 94 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 22 avril 2003
29 nov. 2002 à 09:13
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
Rejoignez-nous