Comment créer une DLL qui écrit une donnée dans un champ text

basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 23 mai 2007 à 23:39
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 28 mai 2007 à 00:43
Bonsoir tout le monde,

je suis null en DLL mais je me demande s'il y a une possibilité de créer une DLL en VB qui écrit dans une zone de texte une valeur quelconque?

Merci d'avance

18 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 mai 2007 à 00:47
Pourquoi au juste une DLL pour ça ?

MPi
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
24 mai 2007 à 00:53
juste pour comprendre comment fonctionne les DLL, voici un exemple que j'ai pompé de vbfrance et ça marche avec les msgbox, mais pour faire passer une chaine de caractères , la c'est pas aussi simple:
pour la dll:
Public Function Coucou()
MsgBox "coucou"
End Function
pour le .exe:

Private Sub Command1_Click()
Dim DLLTest As Object
Set DLLTest = CreateObject("DLL_TEST.ClsStart")
DLLTest.coucou
Set DLLTest = Nothing
End Sub

Merci de m'avoir repondu
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 mai 2007 à 08:26
Salut,

Juste une idée, tu peux très bien faire une propriété pour ta dll qui accepte un TextBox.
CE qui fait que la dll aurait un objet de type textbox qui serait celui ou tu veux ecrire.

pas testé mais un truc du style

Option Explicit
'pour la dll:
Private m_Text As TextBox

Public Property Set MonTextBox(ByRef ObjText As Object)
   Set m_Text = ObjText
End Property<hr />
Public Function Coucou()
   m_Text.Text = "Coucou"
End Function<hr />

Private Sub Class_Terminate()
   Set m_Text = Nothing
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

Puis dans lA feuille
Private Sub Command1_Click()
Dim DLLTest As Object
   Set DLLTest = CreateObject("DLL_TEST.ClsStart")
   Set DLLTest.MonTextBox = Me.Text1
   DLLTest.Coucou
   Set DLLTest = Nothing
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 mai 2007 à 10:36
salut,

enfin....
encore faut-il comprendre l'utilité d'une sub et d'une function. ici çà ne semble pas être le cas.

et ce n'est pas parce que CreateObject existe que çà dispense un enregistrement propre.

on utilise CreateObject pour enregistrer dynamiquement.
pourquoi faire ici?!!!

tu référencies juste la dll dans le projet, dll placée dans le dossier de l'exe (du vbp) et tu déclares juste la classe de la dll comme une classe dans le projet

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0

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

Posez votre question
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
25 mai 2007 à 23:26
il y a une erreur à ce niveau la:

   Set DLLTest.MonTextBox = Me.Text1

l'erreur est que:
l'objet ne gère pas cette prpriété ou cette méthode

Merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 mai 2007 à 23:37
normal, le param (de jrivet ^^) est faux

type objet à mettre, me semble qu'on ne peut pas typer de type de param byref
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
25 mai 2007 à 23:57
et c'est qoui la solution d'après toi?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 mai 2007 à 00:13
relis moi c'est écrit

3e et 9e mot...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 mai 2007 à 00:14
mais tout çà reste inutile, voir mon premier post !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 mai 2007 à 00:16
oh, et si çà n'y change rien, faut pas oublier que tu dev....
donc ta DLL, faut penser à la compiler avant ;)

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
26 mai 2007 à 00:36
tu fais comme si tu t'adresse à un pro PCPT !!!!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 mai 2007 à 00:58
ok...
tu parles de faire une DLL et de l'utiliser en l'enregistrant dynamiquement (par code) alors qu'elle devrait être juste en référence (projet > références).

donc dans une utilisation "normal", tu aurais déjà l'avantage de ne pas avoir ce genre de souci.

dans cette config...., si ta DLL est en cours de développement (projet VB), tu ne pourras pas l'enregistrer dynamiquement di elle n'est pas compilée (fichier, créer machin.dll)

enfin, je "crois" que pour une dll, un objet passé (donc en paramètre) par REFérence (BYREF) doit être de typé "object" et non pas du type réel (textbox) attendu
mais pour cette partie tu peux oublier puisque j'ai mal lu, jrivet avait bien déclaré en object

espérant avoir été plus clair
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
26 mai 2007 à 14:41
très clair, donc si je veux passer un text par une DLL est quasi impossible!
est ce bien ça?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 mai 2007 à 14:08
non
c'est tout à fait faisabledll class variable, propriété

instanciation de la dll (ajoutée au projet)
dim Ct as new tadll.taclass

donnée vers la dll
ct.text = "machin" (donc propriété enregistre dans variable)

récupère de la dll
form1.text1.text = ct.text (donc propriété te renvoie le contenu de la variable)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
27 mai 2007 à 16:14
je doute que j'ai tout compris, je t'avais dit que je suis un hyper debutant tu parles en abréviation et il me semble que toutes tes phrases se confondent, je récap pour me dire si j'ai tout saisi:

dans ma dll (VB), j'ajoute cette ligne:
dim Ct as new tadll.taclass
ct.text = "machin"
form1.text1.text = ct.text

est ce ça?
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
27 mai 2007 à 16:19
j'ai tout de meme essayé de faire ceci, mais il y a une erreur à ce niveau la:
Ct As New tadll.taclass
l'erreur est:
Type défin par utilisateur non défini ???

Cette erreur est générée quand je veux créer l'exe de la DLL

Merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 mai 2007 à 21:20
en même temps si tu fais pas d'effort çà risque pas d'être possible....

le code indiqué est celui pour l'utilisation, donc ta form
celui de la dll, çà t'a déjà été donné par JRivet (c'est pourquoi j'ai récapitulé presque par abréviations)

type indéfini... beh oui puisque mauvais projet (dll au lieu d'exe)

dans le doute je précise : tadll.taclass sont évidemment à remplacer par les vraies nomenclatures
(quand tu as un document qui dit "indiquer votre nom" je suppose que tu fais ce qui se doit )

relis ce topic, tu as toutes les réponses
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
28 mai 2007 à 00:43
merci je vais tout relire et je te promets que je demanderai plus d'aide
0
Rejoignez-nous