begin process at 2012 02 14 07:04:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Algorithme

 > 

Divers

 > 

création du Dll avec vb


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

création du Dll avec vb

vendredi 30 mars 2007 à 19:55:42 | création du Dll avec vb

machmacha

salut tous,

j'ai entendu tres souvent sur les fichier Dll et son importance dans la programmation soit en Langage C++ ou Vb.net ou autre, mais je ne c'est pas vraiment son role, et comment les creer et quoi definir dedans :roll: .

quelqu'un peut m'aider ?

merci d'avance
vendredi 30 mars 2007 à 20:36:17 | Re : création du Dll avec vb

daddycool76

Bon courage !!!
vendredi 30 mars 2007 à 23:15:14 | Re : création du Dll avec vb

mortalino

Membre Club
Réponse acceptée !


salut

et google, ne trouve rien ?  Dynamic Link Library !
Pour infos, en vb6, les dlls sont fait à partier de Module de classe.
C'est (en gros) un objet, tu crées une instance de celui-ci, et tu as accés à ses propriétés, méthodes.
Les méthodes public de la classe seront donc accessibles, quand ce sera compilé par vb en tant que Dll, par n'importe quel programme, si celui instancie ta dll.
(ex simple, User32 est une dll, et tu as accès a tout un tas de fonctions, style AnimateWindow, EnableWindow, etc..)

Pour des exemples, télécharge des sources avec des Modules de classes.

Ex de ce que tu peux y trouver avec une de mes classes (sur les actions de la bourse) :


Option Explicit

Private mcolPlacements As New Collection


Property Get LastValueAction() As String
    Dim NewValue As New clsDatas
    
If sContenu = vbNullString Then
    LastValueAction = CotationsValues(Me.CotationsNumber)
Else
    LastValueAction = NewValue.ProcessingDatas(sContenu)
    Set NewValue = Nothing
End If
End Property

Public Sub Delete(ByVal Index As Variant)
   mcolPlacements.Remove Index
End Sub

Property Get NameAction() As String
    NameAction = Config.ReadIniString("ACTION""Nom")
End Property

Property Let NameAction(new_mNameAction As String)
    Call Config.WriteIni("ACTION""Nom", new_mNameAction)
End Property

Property Get CotationsNumber() As Long
    CotationsNumber = UBound(CotationsValues) - 1
End Property

' Moyenne de l'action, par rapport aux valeurs enregistrées localement
' (ne reflêtera pas forcémment la réalité, si le suivi est pris en cours de route)
Property Get AverageAction() As Double
        Dim As Integer
        Dim temp As Double: temp = 0
    
    For i = LBound(CotationsValues) To Me.CotationsNumber
        temp = temp + MyCDbl(CotationsValues(i))
    Next i
    AverageAction = Format(temp / (UBound(CotationsValues) + 1), "#0.00")
End Property

' pourcentage de l'avant dernière donnée à la dernière
Property Get LastValueEvolutionInPercent() As String
If Me.CotationsNumber < Then
    LastValueEvolutionInPercent = "ND"
Else
    LastValueEvolutionInPercent = CStr(Percent(MyCDbl(CotationsValues(Me.CotationsNumber - 1)), MyCDbl(CotationsValues(Me.CotationsNumber))))
End If
End Property

' pourcentage de la 1ere à la dernière donnée
Property Get FirstValueEvolutionInPercent() As String
If Me.CotationsNumber < Then
    FirstValueEvolutionInPercent = "ND"
Else
    FirstValueEvolutionInPercent = CStr(Percent(MyCDbl(CotationsValues(LBound(CotationsValues) + 1)), MyCDbl(CotationsValues(Me.CotationsNumber))))
End If
End Property

' date de téléchargement de la dernière action
Property Get LastDate() As String
    LastDate = CotationsDates(Me.CotationsNumber)
End Property

' Cotation de l'action la plus Basse
Property Get LowerAction() As String
    Dim As Integer
    
LowerAction = CotationsValues(LBound(CotationsValues) + 1)
For i = LBound(CotationsValues) + To Me.CotationsNumber
    If Val(CotationsValues(i)) < Val(LowerAction) Then LowerAction = CotationsValues(i)
Next i
End Property

' Cotation de l'action la plus Haute
Property Get HigherAction() As String
    Dim As Integer
    
HigherAction = CotationsValues(LBound(CotationsValues))
For i = LBound(CotationsValues) To Me.CotationsNumber
    If Val(CotationsValues(i)) > Val(HigherAction) Then HigherAction = CotationsValues(i)
Next i
End Property


Public Function Add(ByVal Name As String, ByVal PartNumber As String) As clsPlacement
   Dim NewPlacement As New clsPlacement
   
   With NewPlacement
      .ID = Name
      .NamePlacement = Name
      .PlacementValue = PartNumber
      mcolPlacements.Add NewPlacement, .ID
   End With
   Set Add = NewPlacement
End Function

Public Function Count() As Long
   Count = mcolPlacements.Count
End Function

Public Function Item(ByVal Index As Variant) As clsPlacement
   Set Item = mcolPlacements.Item(Index)
End Function

' NewEnum doit renvoyer l'interface IUnknown de
' l'énumérateur d'une collection.

' dans le Menu Outils, Attibut de procédure, il faut mettre dans les propriétés
' avancées de cette procédure lID à -4 (moins 4) et cocher ~Masquer ce membre~
Public Function NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
   Set NewEnum = mcolPlacements.[_NewEnum]
End Function
~ Mortalino ~ Colorisation automatique

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
samedi 31 mars 2007 à 00:24:38 | Re : création du Dll avec vb

EBArtSoft

Membre Club Administrateur CodeS-SourceS
daddycool76 > cassé ! lol

[Code]E.B.[/Code]
samedi 31 mars 2007 à 07:45:46 | Re : création du Dll avec vb
samedi 31 mars 2007 à 08:14:13 | Re : création du Dll avec vb

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
mortalino >> tu confond dll et activeX apparement : une dll est une bibliothèque de fonction, comme l'est user32, elle est bien souvent codée en C, avec des définitions d'export des fonctions. Tu les appelle non pas en créant une instance de classe, mais en les déclarant dans ton code vb (la fameuse instruction Declare) : toutes les API Windows sont codées dans de "vraies" dll.
Les dl activeX, bien que leur extension soit en .dll ne sont pas de véritable dll, ce serait plutôt des bibliothèques d'objets, elles devraient avoir l'extension ocx, ca éviterait les embrouilles entre les termes ! Elles nécéssitent d'être enregistrées dans le registre afin que le système puisse les retrouver, et connaître les objets qu'elles hébergent. Pour utiliser une de leur fonction, il faut créer une instance de la classe, ce qui rend les choses plus compliquées (légérement), et surtout, il y a tout un protocole de communication qui se met en place entre le prog et l'ocx, ce qui rend les chose bien moins rapide qu'un appel à une fonction d'une vraie dll ! Elle sont bien souvent codées en VB car VB apporte la rapidité de développement par rapport au C++ (c'est fastidieux de faire un ocx en C++), et surtout, un activeX est bridé non plus par le langage (enfin, très peu) mais surtout par le protocole de communication entre le programme et l'activeX (il me semble que c'est COM, non ?).

Voilou.

En gros, une dll ca permet d'avoir des bouts de code réutilisable entre plusieurs projets, ce qui augmente la rapidité de développement (une fois qu'un bout de code est testé et qu'on est sûr qu'il marche, on le mets dans une dll, et on le rappelle dans les autres projets), ca permet d'alleger un programme (par exemple, tout mes projets professionnels sont constitué d'un tout petit exe de 32 Ko qui ne fait des appels qu'à des dll, en moyenne une quinzaine => chargement très rapide, occupation mémoire moindre, et surtout, mise à jour du programme simplifiée : je ne mets à jour que les dll qui en ont besoin !). Enfin bref, je pense personnellement qu'une dll ca apporte beaucoup si on doit travailler sur un gros projet ou qu'on doit faire plusieurs projets qui doivent avoir des parties en commun.



samedi 31 mars 2007 à 21:43:53 | Re : création du Dll avec vb

mortalino

Membre Club


Voilà qui est clair, merci pour cette précision DKS 

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
jeudi 12 avril 2007 à 18:38:36 | Re : création du Dll avec vb

ibif

bonjour,
je voudrais savoir si l'on pouvait integrer une dll compilée sous delphi dans visual studio 2005
merci pour votre reponse
lundi 23 février 2009 à 17:30:47 | Re : création du Dll avec vb

andrebernard

Bonjour Darksidious

Je voudrais savoir quel seraient les VB capables de creer des vrais DLL comme le C
Je sais déja que le VB6 n'en est pas capable, j'avais lu qu'un logiciel pouvait modifier le linker ou un truc comme ça, mais je n'en ai pas trouvé plus.

J'ai aussi VB 2003 PRO, en est t'il capable ???
Ou sinon lequel 2005, 2008 version express, pro, standard.

Et surtout si quelqu'un aurait déja créé ce genre de DLL standard avec un VB
Car je lis tout et son contraire sur internet et je suis vraiment perdu.

J'ai acheté le VB2003 PRO pour faire des DLL, et j'apprend que l'on ne peut creer que des bibliotheques de classes et non des DLL, j'suis dégouté

Merci de m'eclairer de vos lumieres
Bonne journée

lundi 23 février 2009 à 17:37:39 | Re : création du Dll avec vb

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

VB 2003 ne gère pas le langage VB, mais le langage VB.NET : rien à voir !

Déjà qu'avec VB6, on ne pouvait pas faire de "vraies" dll (entends par là des bibliothèques de fonctions), alors je te laisse imaginer avec VB.NET qui est encore plus orienté objet...

Non à ma connaissance, il n'est pas possible de faire de "vraies" dll en VB, il faut passer par du C (pas extrêmement compliqué, et un peu plus rapide que du VB6 compilé). Cependant, comme tu peux le voir, cette discussion date de presque 2 ans, et je suis passé à bien autre chose depuis : je fais encore du VB6, mais je fais surtout du JAVA, qui n'a rien à voir avec VB6, et je m'éclatte bien plus avec JAVA qu'avec ce langage made in cro$oft qui a eu un temps de gloire avant que cro$oft ait jugé que pour ce faire plus de pognon encore il fallait sortir une version incompatible afin qu'un max d'entreprise rachète un Visual Studio... pas bête hein ? Et bien moi en tout cas, ca m'a dégoûté du langage VB, et surtout, de microsoft !
______________________________________
DarK Sidious

1 2

Cette discussion est classée dans : vb, dll, création


Répondre à ce message

Sujets en rapport avec ce message

Création d'une dll en VB .NET [ par chris500 ] Est il possible de générer une Dll à partir de VB .NET ?Si oui, comment ? (attention, je suis THE débutant en VB)=> je ne trouve rien dans la doc util [VB.NET] HELP Création & utilisation DLL [ par GaD60 ] Salut à tous Depuis ce matin, j'tourne en rond pour arriver à faire une dll. J'ai fait plusieurs appli qui travaillent avec une base de données. J Pilotage d'un appareil via un GPIB en VB.NET [ par cerisiera ] BonjourJe suis en train d'écrire un logiciel pour piloter un appareil via une connection GPIB-IEEE. Pour cela j'utilise la dll GPIB-32.dll.Lors de l'e Problème de déploiment lié à un activx [ par guepe ] Bonjour à tous,J'ai codé un projet VB 6 faisant appel à une dll (roksock.dll) pour une apli client -serveur. Dans mon projet, j'ai coché la référence, SQL Server DLL (VB) ASP [ par nickadele ] Bonjour tt le monde, Nous sommes oqp de faire une migration de plate forme serveur dont voici les détails. Site web intranet ASP, DLL en VB pour l'acc dll en vb.net^pour crystal report - urgent [ par jacky1 ] Bonjour à tous,Je débute en vb.net et c'est la galère.Si qqn sait, Librairie winpcap (vbpcap.dll) [ par Le cancre ] Bonjour à tous,j'en ai marre, serieux!!apres mille et une tentative, je n'arrive toujours pas à installer correctement la fameuse dll de winpcap(vbpca pb retour de paramètres depuis ATL ActiveX [ par busagp ] Bonjour, voici un petit (quoi que ?) problème que je rencontre depuis mon passage à VB.NET.Mon appli qui était en VB6 fait des appels à des fonctions Comment decharger une DLL ??? [ par mouse74 ] Bonjour,J'ai un gros problème. Voilà, mon programme VB fait appel à une dll fortran, tout fonctionne bien sauf que si je lance deux calculs de suite, Création de BDD access via code VB [ par morpheus81fr ] Bonjour, je suis newbie en VB. Je voudrais créer une base de données de type access mais uniquement par du code VB.  voici mon code : Im


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,410 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales