Ga naar inhoud

[VB6] DLL maken


anoniem

Aanbevolen berichten

Eerste deel begrijp ik wel. Dus gewoon mijn functie(s) in een ActiveX dll stoppen die compilen. Alleen laatste begrijp ik niet. Gebruik al andere bestaande dll en die roep ik gewoon aan met: [code:1:0e36905fba]Public Declare Function 'FunctieNaam' Lib "path_to_dlll" (ByVal 'variabele' As 'type')[/code:1:0e36905fba] Hoef hier dus niets te doen met references. Wat is het verschil? En kan ik diezelfde code ook gebruiken? GRTZ, René
Link naar reactie
tis nog niet helemaal gelukt. Doe het volgende als test: msg.dll: [code:1:ec50152089] Function Message (msg as string, title as string) as integer Message = msgbox(msg, vbYesNoCancel, title) End Function[/code:1:ec50152089] Voeg 'm nu toe met reference. Form1: [code:1:ec50152089] Private Sub Form_Load() test = Message("Message","Title") debug.print test End Sub [/code:1:ec50152089] Krijg vervolgens de melding dat de functie niet gedefineerd is. Wat doe ik fout?
Link naar reactie
Als je een ActiveX dll maakt moet je een klasse aanmaken. Wanneer je nu de dll als reference gebruikt zul je een variabele aan moeten maken die refereert naar de klasse in jouw dll. laten we aannemen dat je de klasse messageclass hebt genoemd. [code:1:a3190c42fe]private sub somesub() dim iets as messageclass test = iets.message(bla, bla) end sub[/code:1:a3190c42fe] helpt dit? Ik heb een klein dll bestand gemaakt en een gewoon bestand dat gebruikt maakt van het dll bestand. Je kunt het vinden op [url=http://www.nl-soft.nl/Erpics/dll.zip]deze site [/url] Het blijft er niet lang op staan, volgende week haal ik het weer weg. ps Wat jij fout deed is om de functie in jouw dll niet Public te maken. Standaard zijn alle functies, subs en variabelen private en dus niet zichtbaar voor de buitenwereld.
Link naar reactie
Misschien ben ik een zeikerd, maar overweeg om dat soort kleine functies gewoon in een (class) module te stoppen. Een DLL is op zich wel grappig, maar heeft het een echte meerwaarde? Ik heb een aantal (class) modules die ik regelmatig gebruik en die voeg ik gewoon toe aan mijn project. Als jij een DLL update die in de References van je applicatie staat, dan gebeurt het regelmatig dat je applicatie niet meer wilt starten. Daarnaast kost het veel meer processorkracht / geheugen om een DLL te laden en vervolgens een functie te laden. Als je je programma knap schrijft en forms, recordsets en andere veelgebruikte objecten na gebruik gewoon killt met Set myObject = Nothing dan heb je echt veel meer performance dan met zo'n DLL. Bovendien scheelt het een hoop rommel in je SYSTEM(32) directory. Natuurlijk is het leuk om eens te proberen een DLL te maken, maar ik raad je aan om ze zoveel mogelijk te mijden.
Link naar reactie
  • 3 weken later...
dit is de complete code voor wat je wilt: Start VB6 -> Active X Dll , en voer de code in: bijv: sub msgcritical() msgbox "TEXT", vbCritical, "TITLE" end sub sub msginformation() msgbox "TEXT", vbInformation, "TITLE" end sub compile en noem het msg.dll start VB6 -> Standard EXE -> Reference -> zoek je dll op. ga dan naar de code editor en type bij General: static message as new msg en dan bij sub form_load() msg.msgcritical of msg.msginformation end sub Klaar is kees
Link naar reactie
[quote:eed4a17071="RubeL"]Een DLL is op zich wel grappig, maar heeft het een echte meerwaarde? Ik heb een aantal (class) modules die ik regelmatig gebruik en die voeg ik gewoon toe aan mijn project. Als jij een DLL update die in de References van je applicatie staat, dan gebeurt het regelmatig dat je applicatie niet meer wilt starten.[/quote:eed4a17071] blame M$. [quote:eed4a17071="RubeL"] Daarnaast kost het veel meer processorkracht / geheugen om een DLL te laden en vervolgens een functie te laden. Als je je programma knap schrijft en forms, recordsets en andere veelgebruikte objecten na gebruik gewoon killt met Set myObject = Nothing dan heb je echt veel meer performance dan met zo'n DLL. [/quote:eed4a17071] Dat valt op zich best mee. [quote:eed4a17071="RubeL"] Bovendien scheelt het een hoop rommel in je SYSTEM(32) directory. Natuurlijk is het leuk om eens te proberen een DLL te maken, maar ik raad je aan om ze zoveel mogelijk te mijden.[/quote:eed4a17071] Je hebt ActiveX DLL's en gewone DLL's. ActiveX DLL's dien je in de system32 directory plaatsen, registreren en meer van die onzin. (natuurlijk heeft het ook zijn voordelen). Bij [i:eed4a17071]gewone[/i:eed4a17071] DLL's, kun je deze gewoon in dezelfde directory plaatsen als je executable en de functies gebruiken die in de DLL's zitten zonder voorafgaande handelingen. Bij een eventuele update van een functie in de .DLL dan hoef je alleen de .DLL te vervangen. En dit is waarschijnlijk wat de vraagsteller bedoelt. Blijft de vraag staan: Hoe kun je in Visual Basic standaard DLL's maken?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...