Comment créer une DLL qui écrit une donnée dans un champ text
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
23 mai 2007 à 23:39
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
A voir également:
Comment créer une DLL qui écrit une donnée dans un champ text
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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]
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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