Problème avec les DLL

cs_DeadAngel Messages postés 6 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 20 avril 2007 - 19 déc. 2005 à 14:23
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 19 déc. 2005 à 21:35
Bonjour!

Je suis en train de me prendre la tête avec les DLL ActiveX.
Je vous explique:

Je sais que je peux créer des liens entre une form (Form1) et un module de classe (Module1).
Mais maintenant, je me suis intéressé il y a un petit moment au DLL (cause executable trop lourd ~1205 Ko)
Donc, pour discuter avec une dll (Active1), dans Form1 je marque
"Public MaDll As New Active1"
et je clique sur Projet, Reference et je coche mon projet de la DLL.

Je voulais si c'est possible, que vous me fassiez un projet avec un bouton (Command1) qui discuterait avec une DLL et celle-ci changerait la "Caption" de Command1.

Merci a l'avance, ça me changerais beaucoup la vie!

------------------------------------------
Qui veux la Paix -- Prépare la Guerre
------------------------------------------

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 déc. 2005 à 16:01
Salut
Tout dépend du paramétrage de tes fonctions dans ton ActiveX.
Il faudrait que ta fonction DLL ait ce format :
Function NomFonction(ByRef monControle As Object, ByVal Texte As String)
et que dedans, tu fasses un simple :
monControle.Caption = Texte
et pour l'appeler depuis ton projet :
Call NomFonction(Label1, "Coucou")

Regarde aussi la dernière source de Renfield à propos des PlugIn (clique ici) qui serait peut-être plus adapté à ton projet.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 déc. 2005 à 21:35
salut,

[VB6]



tu ouvres un nouveau projet... EXE standart

ensuite, fichier / ajouter un projet... DLL ActiveX





tous les noms sont par défaut....

ajoute un bouton sur ta Form1



ouvre les références de projet1 -> coche Projet2



et voici le code pour comprendre le principe...




' -----

' Form1

' -----

'

Option Explicit

Private cMaDLL As New Class1

'

'

Private Sub Form_Load()

Set cMaDLL.Object = Command1

End Sub

'

Private Sub Form_Unload(Cancel As Integer)

Set cMaDLL = Nothing

End Sub

'

'

Private Sub Command1_Click()

cMaDLL.SetCaption "çà marche?!!"

End Sub













' ------

' Class1

' ------

'

Option Explicit

Private mObject As Object

'

'

Public Property Set Object(new_mObject As Object)

Set mObject = new_mObject

End Property

'

'

Private Sub Class_Terminate()

Set mObject = Nothing

End Sub

'

'

Public Function SetCaption(ByVal sCaption As String) As Boolean

On Error GoTo ErrHandler

mObject.Caption = sCaption

On Error GoTo 0

SetCaption = True

Exit Function



ErrHandler:

Debug.Print Err.Number & " : " & Err.Description

Err.Clear

SetCaption = False

End Function




<small> Coloration
syntaxique automatique [AFCK]</small>



++

PCPT [ARCK]
0
Rejoignez-nous