Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Bygg din första dll-komponent

Postad 2001-11-15 av Pelle Johansson i sektionen ASP.NET, C#, Okategoriserat med 2 Kommentarer | Läst av: 5514, Betyg: 91%

Förord

Det kan tyckas svårt att lära sig att bygga en egen ActiveX DLL och använda den tillsammans med ASP, men så svårt är det faktiskt inte. För att göra det enkelt och tydligt så tänkte jag ta en helt vanlig funktion som jag tidigare skrivit i Visual Basic, göra i ordning den och sedan använda den i mitt asp-program.
Innehåll
  » Börja skriva vb-programmet
  » Gör den nåbar från ASP
  » Dags att börja med asp-sidan
  » Glöm inte att rensa bort gamla dll-er
Då sätter vi igång genom att starta VB och till skillnad från att skapa en standard EXE fil så skall vi istället starta ActiveX DLL. När vi startat detta nya program så finns det Project1(Project1) - en Class Module som heter Class1(Class1). Vi börjar med att byta namn på dessa så det blir lite mer överskådligt.

Klicka på Project1och i Properties så döper vi om Project1 till webb. Sedan klickar du på Class1 och döper den till dates. Nu väljer du via menyn Project|webb properties och fliken Make. Se till att det i Threading Model står Apartment Threaded.


Börja skriva vb-programmet

Nu tar vi och skapar våran första funktion. Det gör du genom att direkt skriva några funktioner. Jag har tagit några vanliga varianter, klistra in koden eller ännu bättre, skriv den själv.

Function Today()
Today = Now
End Function

Function Tomorrow()
Tomorrow = DateAdd("d", 1, Now)
End Function

Function Yesterday()
Yesterday = DateAdd("d", -1, Now)
End Function

Vi tar också med en lite annorlunda funktion som också skall in i samma klass. En funktion där du skickar in ett värde också till skillnad från de andra tre. Som du ser så har jag deklarerat invärdet med ByVal - och det är viktigt att du också gör det för alla parametrar som du kan tänka dig vilja använda som inparametrar i alla olika funktioner.

Function DaysFromNow(ByVal days As Long)
DaysAhead = DateAdd("d", days, Now)
End Function

Spara projektet och kompilera denna till en DLL
Nu har vi fyra funktioner och det bör räcka för en demonstration. Nu tar du och kompilera denna. Som du ser så står det i menyn File - make webb.dll, placera den förslagsvis i c:\inetpub\components så du har alla komponenter samlade på en och samma plats. Källkoden kan du placera i mappen c:\inetpub\components\source så har du även där kontroll på alla dina filer för varje dll.



Gör den nåbar från ASP

Nu när du kompilerat din DLL så skall vi också registrera den i registry. Om du inte gör det så kommer inte ASP att kunna hitta ditt objekt när det sedan används på en asp-sida. Då får du felmeddelandet. ActiveX Can't create object.

Du registrerar genom att gå till kommando-prompten:
c:\>regsvr32 c:\inetpub\components\webb.dll



Dags att börja med asp-sidan

Nu är din dll registrerad och kan börja användas på en asp-sida. Därför skriver vi ett litet script som vi använder för att se om det fungerar som vi tänk oss. Nu finns det fyra funktioner i klassen dates, dessa är:

· dates.Today
· dates.Tomorrow
· dates.Yesterday
· dates.DaysAhead

<%
' instansiera vår dll genom att använda createobject
Dim Dates
Set Dates = Server.CreateObject("webb.dates")
%>







Testar webb.dll




Testa min webb-dll




















Dagens datum: <%=Dates.Today%>
I morgon: <%=Dates.Tomorrow%>
I morgon: <%=Dates.Yesterday%>
Idag + 8 dagar framåt: <%=Dates.DaysFromNow(8)%>





<%
' frigöra objektet från minnet
Set Dates = Nothing
%>


Nu är sidan klar och du kan exempelvis spara den som test.asp i katalogen c:\inetpub\wwwroot. När du nu testkör din sida, förslagsivs genom att skriva: http://localhost/test.asp så bör följande sida visas:

Testa min webb-dll

Idag 2001-09-16
I morgon 2001-09-17
I går 2001-09-15
Om 8 dagar 2001-09-23

Ända din dll och kompilera om
När du sedan sätter igång och bygger om dina klasser i DLL'en för att testa på din webbserver så kommer du att märka att du inte får kompilera den för att den används. Genom att stänga av IIS servern kan du sedan kompilera, och slutligen starta om IIS-servern igen.

Med dessa dos-kommandon (cmd) så kan du stanna och starta din IIS på ett enkelt sätt. Skriv stop, därefter kompilerar du om och återstartar med start-kommandot:

· net stop w3svc
· net start w3svc

För Personal Webbserver (PWS) gäller istället följande:

· pws /stop
· pws /start

(Obs! om du döpt om din IIS webbserver till något annat namn så måste du skriva det istället. En standardinstallation för WinNT/2000 har namnet w3svc). Se Q236166 för info om net start och net stop.

Om allting fungerat som det skulle så har du nu skrivit din första DLL som du använder tillsammans med ASP, så svårt var det väl inte.


Glöm inte att rensa bort gamla dll-er

När du nu sedan skriver både en, två och 10 DLL-er så kan det vara bra att veta hur man tar bort dom igen. Det kan ju tänkas att du skapar en annan dll- med mer finesser och andra funktioner. Innan du fysiskt raderar din dll så ser du till att avregistrera den i registry. Det gör du via kommando-prompten:

c:\>regsvr32 / u c:\inetpub\components\webb.dll

Avslutningsvis
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas.

/Pelle Johansson
Upp

2 Kommentarer


  1. Hobbe Husman
    6 jul 2005

    Tjena, Skitbra artikel... men jag får inte nedanstående att fungera. Kan stoppa IIS, men får fortfarande felmeddelandet "permission denied xxx.dll", när jag ska make:a den... Har även testat att döda processen, samt avregistrera Dlln... har även kollat rättigheter för filen samt mappen. Använder Wind XP pro... MvH, HObbe "Ända din dll och kompilera om När du sedan sätter igång och bygger om dina klasser i DLL'en för att testa på din webbserver så kommer du att märka att du inte får kompilera den för att den används. Genom att stänga av IIS servern kan du sedan kompilera, och slutligen starta om IIS-servern igen. Med dessa dos-kommandon (cmd) så kan du stanna och starta din IIS på ett enkelt sätt. Skriv stop, därefter kompilerar du om och återstartar med start-kommandot: "


  2. Daniel Melin
    25 okt 2006

    skön artikel.. lyckades bygga en komponent som validerar personnummer utifrån den här guiden :)

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
1 190
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies