Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création de fichier dll

9 réponses
Avatar
vbnet3
Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function

9 réponses

Avatar
Driss HANIB
bonjour vbnet3

Je ne suis pas un spécialiste mais j'ai essayé d'en faire une ou deux de la
manière suivante.
Crée un nouveau projet de type ActiveX DLL
Dans ce projet tu crées une classe que tu vas nommer par exemple : cCalcul

Puis dedenans tu mets la fonction publique

Public function EstPaire(Nombre as long) as boolean
EstPaire = (Nombre mod 2 = 0)
end function

soit tu compiles ta DLL
soit tu crées un groupe de projets ou tu mets ton projet principal et
ensuite tu fais référence à ton projet DLL ou à ta DLL compilée

Tu déclares par exemple

Dim Calc as cCalcul ' qui appparaitra dans tes types possibles.
Puis dans ton programme (ou tu veux)

tu initialise ta classe
set Calc = new cCalcul

et tu auras accès à ta fonciton : Calc.EstPaire()

n'oublie pas avant de quitter de "lâcher" ta classe
set Calc = nothing

Voilà à peu près le principe : ceci a été écrit "à la volée" par un non
spécialiste.
je laisse aux pros le soin de compléter ou infirmer ma réponse.

Bon courage

Driss



"vbnet3" a écrit dans le message de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function


Avatar
Patrice
Si tu veux dire des fonctions exportées utilisables ensuite par Declare ce
n'est pas pris en charge.

Sinon c'est une bibliothèque de classes (les fonctions peuvent être
éventuellement "Shared").

--
Patrice


"vbnet3" a écrit dans le message de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function


Avatar
Driss HANIB
Salut vbnet3

Je crois qu'on ne peut pas utiliser la fonction Declare avec une DLL ActiveX
Il faut faire ce que je t'ai dit dans mon premier mail
Dans ton DLL Active X tu crées une CLASSE et tu mets ta fonctoin DANS cette
classe.
Je crois qu'il faut appeler la classe comme le projet (DLLActive X)

Dans ton projet, tu fais Projet / Référence et tu ajoute ta DLL. !
Puis tu crées une variable
Dim MaClasse as cClasse (nom de ta classe qui sera alors disponible après
référencement de ta DLL).

Driss

"vbnet3" a écrit dans le message de news:

Patrice a écrit le 23/12/2008 à 16h25 :
Si tu veux dire des fonctions exportées utilisables ensuite par Declare
ce
n'est pas pris en charge.

Sinon c'est une bibliothèque de classes (les fonctions peuvent
être
éventuellement "Shared").

--
Patrice


"vbnet3" a écrit dans le message
de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function





J’ai crée un nouveaux projet DLL ActiveX puis je créée une fonction :
Public Function EstPaire(Nombre As Long) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
End Function
Pui je click fichier - > Crée Paire.dll.
Puis je copier le fichier Paire.dll dans c:windwossystem32
Puis je crée un nouveau projet et je déclarer
Public Declare Function EstPaire Lib "paire.dll" (ByVal Nombre As Integer)
As
Boolean
Private Sub Command1_Click()
Dim x As Boolean
x = EstPaire(5)
MsgBox x
End Sub
Il affiche une erreur
Point d’entée EstPaire d’une DLL introuvable dans paire.dll


Avatar
vbnet3
Driss HANIB a écrit le 24/12/2008 à 15h35 :
Salut vbnet3

Je crois qu'on ne peut pas utiliser la fonction Declare avec une DLL ActiveX
Il faut faire ce que je t'ai dit dans mon premier mail
Dans ton DLL Active X tu crées une CLASSE et tu mets ta fonctoin DANS
cette
classe.
Je crois qu'il faut appeler la classe comme le projet (DLLActive X)

Dans ton projet, tu fais Projet / Référence et tu ajoute ta DLL.
!
Puis tu crées une variable
Dim MaClasse as cClasse (nom de ta classe qui sera alors disponible
après
référencement de ta DLL).

Driss

"vbnet3" a écrit dans le message
de news:

Patrice a écrit le 23/12/2008 à 16h25 :
Si tu veux dire des fonctions exportées utilisables ensuite par
Declare
ce
n'est pas pris en charge.

Sinon c'est une bibliothèque de classes (les fonctions peuvent
être
éventuellement "Shared").

--
Patrice


"vbnet3" a écrit dans le message
de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function







J’ai crée un nouveaux projet DLL ActiveX puis je
créée une fonction :
Public Function EstPaire(Nombre As Long) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
End Function
Pui je click fichier - > Crée Paire.dll.
Puis je copier le fichier Paire.dll dans c:windwossystem32
Puis je crée un nouveau projet et je déclarer
Public Declare Function EstPaire Lib "paire.dll" (ByVal Nombre As
Integer)
As
Boolean
Private Sub Command1_Click()
Dim x As Boolean
x = EstPaire(5)
MsgBox x
End Sub
Il affiche une erreur
Point d’entée EstPaire d’une DLL introuvable dans paire.dll





Il ya une erreur
« variable objet ou variable bloc With non défini »
************************************************************************************************************
projet 1 DllActiveX :
Non du class « cClass »,le nom de projet « paire » le continue de class :
Public Function EstPaire(Nombre As Integer) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
end Function
en fin : fichier - > crée paire.dll -- donc le nom de dll est (paire.dll)
**************************************************************************************************************
projet 2 :
Projet -> référence -> paire.dll
Dim class As cClasse
Private Sub Command1_Click()
Text1.Text = class.EstPaire(955)
End Sub
Err « variable objet ou variable bloc With non défini »
Avatar
Patrice
Le code est ? Il faut également crée un objet avec cette classe...

Set c=new CClass

--
Patrice

"vbnet3" a écrit dans le message de news:

Driss HANIB a écrit le 24/12/2008 à 15h35 :
Salut vbnet3

Je crois qu'on ne peut pas utiliser la fonction Declare avec une DLL
ActiveX
Il faut faire ce que je t'ai dit dans mon premier mail
Dans ton DLL Active X tu crées une CLASSE et tu mets ta fonctoin DANS
cette
classe.
Je crois qu'il faut appeler la classe comme le projet (DLLActive X)

Dans ton projet, tu fais Projet / Référence et tu ajoute ta DLL.
!
Puis tu crées une variable
Dim MaClasse as cClasse (nom de ta classe qui sera alors disponible
après
référencement de ta DLL).

Driss

"vbnet3" a écrit dans le message
de news:

Patrice a écrit le 23/12/2008 à 16h25 :
Si tu veux dire des fonctions exportées utilisables ensuite par
Declare
ce
n'est pas pris en charge.

Sinon c'est une bibliothèque de classes (les fonctions peuvent
être
éventuellement "Shared").

--
Patrice


"vbnet3" a écrit dans le message
de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function







J’ai crée un nouveaux projet DLL ActiveX puis je
créée une fonction :
Public Function EstPaire(Nombre As Long) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
End Function
Pui je click fichier - > Crée Paire.dll.
Puis je copier le fichier Paire.dll dans c:windwossystem32
Puis je crée un nouveau projet et je déclarer
Public Declare Function EstPaire Lib "paire.dll" (ByVal Nombre As
Integer)
As
Boolean
Private Sub Command1_Click()
Dim x As Boolean
x = EstPaire(5)
MsgBox x
End Sub
Il affiche une erreur
Point d’entée EstPaire d’une DLL introuvable dans paire.dll





Il ya une erreur
« variable objet ou variable bloc With non défini »
************************************************************************************************************
projet 1 DllActiveX :
Non du class « cClass »,le nom de projet « paire » le continue de class :
Public Function EstPaire(Nombre As Integer) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
end Function
en fin : fichier - > crée paire.dll --


Avatar
Driss HANIB
Salut vbnet3

je vois que tu n'as pas encore bien lu mon premier post ! et Comme te dit
Patrice il faut déclarer ta classe !!
Lis bien tout ce qu'on te met avant de te lancer !

Voici l'exemple qui fonctionne

Moi j'ia créé dans ma DLL, une classe nommée cMath qui contient ma fonction
EstPaire !!!
Après avoir référencé comme tu as fait voici le principe , qui marche
puisque j'ai fait le programme

Dans ton programme (ta feuille)
' tu déclares ta classe de ta DLL (pour moi CMath)
Dim Math As CMath
' au chargement de ta feuille tu implémentes (?) ta variable Math
Private Sub Form_Load()
Set Math = New CMath
End Sub


' puis à l'utilisation
Private Sub Command1_Click()
Dim Paire As Boolean
Dim Nombre As Long
If Txt_Nombre.Text <> vbNullString Then
Nombre = CLng(Val(Txt_Nombre.Text))

' <<<<< ici tu utilise comme une classe normale
Paire = Math.EstPaire(Nombre)

' <<<<<<

If Paire Then
Lbl_Etat.Caption = "Nombre Pair"
Else
Lbl_Etat.Caption = "Nombre Impaire"
End If
Else
Lbl_Etat.Caption = vbNullString
End If

End Sub

' N'OUBLIE PAS A LA FIN DE TON PROGRAMME DE RELACHER TA CLASSE
Private Sub Form_Unload()
Set Math = Nothing
End Sub



DRiss
"vbnet3" a écrit dans le message de news:

Driss HANIB a écrit le 24/12/2008 à 15h35 :
Salut vbnet3

Je crois qu'on ne peut pas utiliser la fonction Declare avec une DLL
ActiveX
Il faut faire ce que je t'ai dit dans mon premier mail
Dans ton DLL Active X tu crées une CLASSE et tu mets ta fonctoin DANS
cette
classe.
Je crois qu'il faut appeler la classe comme le projet (DLLActive X)

Dans ton projet, tu fais Projet / Référence et tu ajoute ta DLL.
!
Puis tu crées une variable
Dim MaClasse as cClasse (nom de ta classe qui sera alors disponible
après
référencement de ta DLL).

Driss

"vbnet3" a écrit dans le message
de news:

Patrice a écrit le 23/12/2008 à 16h25 :
Si tu veux dire des fonctions exportées utilisables ensuite par
Declare
ce
n'est pas pris en charge.

Sinon c'est une bibliothèque de classes (les fonctions peuvent
être
éventuellement "Shared").

--
Patrice


"vbnet3" a écrit dans le message
de news:

Bonjour,
Comment créé un fichier dll contiens des fonctions exp :
(DLL contiens une fonction
Public function paire (n as integer) as boolean
If paire mod 2 = 0 then
Paire = true
Else
Paire = false
endif
End function







J’ai crée un nouveaux projet DLL ActiveX puis je
créée une fonction :
Public Function EstPaire(Nombre As Long) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
End Function
Pui je click fichier - > Crée Paire.dll.
Puis je copier le fichier Paire.dll dans c:windwossystem32
Puis je crée un nouveau projet et je déclarer
Public Declare Function EstPaire Lib "paire.dll" (ByVal Nombre As
Integer)
As
Boolean
Private Sub Command1_Click()
Dim x As Boolean
x = EstPaire(5)
MsgBox x
End Sub
Il affiche une erreur
Point d’entée EstPaire d’une DLL introuvable dans paire.dll





Il ya une erreur
« variable objet ou variable bloc With non défini »
************************************************************************************************************
projet 1 DllActiveX :
Non du class « cClass »,le nom de projet « paire » le continue de class :
Public Function EstPaire(Nombre As Integer) As Boolean
If (Nombre Mod 2 = 0) Then
EstPaire = True
Else
EstPaire = False
End If
end Function
en fin : fichier - > crée paire.dll --


Avatar
Jean-marc
Driss HANIB wrote:

Hello Driss,

' au chargement de ta feuille tu implémentes (?) ta variable Math



On crée une instance d'une classe. Une instance de classe est un objet.

Dim Math As CMath



Ici, on a seulement déclaré la variable Math comme étant
du type de la classe CMath. Rien n'a encore été créé.
Math à ce niveau est un objet "en devenir", qui vaut encore "Nothing".
On peut aussi dire que Math est une "variable objet".

Private Sub Form_Load()
Set Math = New CMath
End Sub



Et ici, on instancie Math (qui devient donc un Objet initialisé,
une instance de Cmath).

Le petit programme suivant illustre bien la chose :

Private Sub Command1_Click()

' Déclaration d'une variable de type CMath
Dim Math As Cmath

Debug.Print "Avant instanciation. Is Math Nothing ? " & _
(Math Is Nothing)

' Instanciation
Set Math = New Cmath

Debug.Print "Apres instanciation. Is Math Nothing ? " & _
(Math Is Nothing)

' Libération
Set Math = Nothing

End Sub

Voir: http://dictionnaire.phpmyvisites.net/definition-Instancier--10530.htm

Bonne journée !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Driss HANIB
Salut Jean-Marc

effectivement j'utilise un mauvais vocabulaire.
Je vais regarder ton lien avec "respect" et envie de connaître.
Bon réveillon (ainsi qu'aux autres membres du NG)

Driss

"Jean-marc" a écrit dans le message de news:
495b4e0c$0$2850$
Driss HANIB wrote:

Hello Driss,

' au chargement de ta feuille tu implémentes (?) ta variable Math



On crée une instance d'une classe. Une instance de classe est un objet.

Dim Math As CMath



Ici, on a seulement déclaré la variable Math comme étant
du type de la classe CMath. Rien n'a encore été créé.
Math à ce niveau est un objet "en devenir", qui vaut encore "Nothing".
On peut aussi dire que Math est une "variable objet".

Private Sub Form_Load()
Set Math = New CMath
End Sub



Et ici, on instancie Math (qui devient donc un Objet initialisé,
une instance de Cmath).

Le petit programme suivant illustre bien la chose :

Private Sub Command1_Click()

' Déclaration d'une variable de type CMath
Dim Math As Cmath

Debug.Print "Avant instanciation. Is Math Nothing ? " & _
(Math Is Nothing)

' Instanciation
Set Math = New Cmath

Debug.Print "Apres instanciation. Is Math Nothing ? " & _
(Math Is Nothing)

' Libération
Set Math = Nothing

End Sub

Voir:
http://dictionnaire.phpmyvisites.net/definition-Instancier--10530.htm

Bonne journée !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Jean-marc
Driss HANIB wrote:
Salut Jean-Marc

effectivement j'utilise un mauvais vocabulaire.
Je vais regarder ton lien avec "respect" et envie de connaître.



J'avais bien vu ton (?), d'où ma petite explication :-)

Bon réveillon (ainsi qu'aux autres membres du NG)



Bon réveillon à toi aussi !


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;