Avatar billede spike Nybegynder
19. oktober 1999 - 11:53 Der er 9 kommentarer og
1 løsning

Lav en dll som loades fra exe!!

Hvordan laver jeg en function i en dll som så loades fra en standard exe fil??? Jeg vil helst have at en laver et project, zipper det, uploader det og giver mig en url...

/Spike '99
Avatar billede shjtip Nybegynder
19. oktober 1999 - 13:08 #1
Jeg har desværre ikke en kompiler, men jeg kan da give dig et lille fif.
opret et dll activex projekt. navngiv dit projekt og navngiv den klasse der automatisk åbnes. Gå ind i properties winduet for dit projekt under fanen make og angiv den til enten project eller binær, forskellen kan du læse i online info.
i kode vinduet opretter du nu en funktion eks:

function beregn(byval Ta1 as integer, byval Tal2 as integer) as interger)
    'beregn tal1 og tal2
    dim NytTal as integer
    NytTal = Tal1 + Tal2
end function   
lav dll filen under menupunkt filer, make navn.dll

fra et almindeligt exe vb. under projekt referencer, find og klik på den dll du lige har lavet.
i kodevinduet f.eks i en kommandoknap klik event.
sub commando1_click()
dim mindll as new navn.dll
dim resultat as integer
resultat=min.dll.beregn(2,2) ' kalder den funktion du skrev i dll filen
msgbox resultat 'viser resultat af 2 +2 i en msgbox
end sub

Der er meget mere i  det en denne lille beskrivelse, men den kan give dig et lille skub i den rigtige retning. når du har fået dette til at virke bør du koncentrere dig lidt om de mere objectorienterede redskaber i vb. properties "let og get" initalize event og terminialize event i en klasse er vigtige, samt private og public begreberne.
Håber det kunne bruges til et eller andet ellers kan jeg da sende dig en lille source kode projekt med dette eksempel senere idag.
Hilsen Simon
Avatar billede shjtip Nybegynder
19. oktober 1999 - 13:10 #2
sorry det skulle være function beregn(byval Ta1 as integer, byval Tal2 as integer) as interger uden ) til sidst :-)
Avatar billede januskh Nybegynder
19. oktober 1999 - 16:46 #3
Først skal du lave en klasse, som skal fungere som forside af DLL'en. I denne klasse skal du lave de Sub-rutimer, som du gerne vil have tilgænglig i DLL'en. Husk at de rutimer som skal være synlige, skal hedde Public Sub/functions og dem som ikke skal kunne startes/vises udmiddelbart fra DLL'en, men skal bruges til interne rutimer, skal være Private Sub/functions.

Herefter kan du begynde med at tilføje forms m.m. Din rutime i en VB DLL vil så komme til at se således ud:

Public Function Beregn(byval Ta1 as integer, byval Tal2 as integer) as interger
    'beregn tal1 og tal2
    dim NytTal as integer
    NytTal = Tal1 + Tal2
Beregn = NytTal
Unload me
end function   

Nu kompilerer du dll'en. Ovre i et andet visual basic program, skal du under referencer, finde din DLL. Herefter kan du blot lave følge sub i din program.

Private Sub Test_Af_DLL()
  Dim interntDLLNAVN as myDLL
  Set interntDLLNAVN = NEW myDLL

  msgbox Beregn(1,3)

  Set interntDLLNAVN = Nothing

End Sub

Resultatet skulle gerne blive 4 i en messagebox.

Med venlig hilsen

Janus Kamp Hansen
Systemudvikler og webmaster
EDB-Afdelingen
Nordisk Solar A/S
6600 Vejen
Avatar billede mk-software Nybegynder
20. oktober 1999 - 14:12 #4
januskh >>> Kan man også brugren en dll file til at starte en Form
Avatar billede januskh Nybegynder
20. oktober 1999 - 14:47 #5
mk-software >>> Jada..
Avatar billede spike Nybegynder
20. oktober 1999 - 22:56 #6
Jeg gav Janus pointene pga. han sendte mig source code i en mail..
TAK! Det virker fint! :)
Avatar billede januskh Nybegynder
21. oktober 1999 - 09:08 #7
Det er bare i orden... :) Skulle det være en anden gang.... ;)
Avatar billede shjtip Nybegynder
21. oktober 1999 - 11:17 #8
har du virkelig tid til det Janus :-)
Hilsen Simon
Avatar billede januskh Nybegynder
21. oktober 1999 - 11:42 #9
hehe...
Avatar billede martin_zeus Nybegynder
21. april 2001 - 23:22 #10
Januskh!
Kan du ikke også sende det til mig, på martin.molle@get2net.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester