ASP dosyalarını DLL´ye çevirme - ASP Webmaster bilgi bankası, knowledge base Webmaster Araçları

AnaSayfa > ASP > ASP dosyalarını DLL´ye çevirme
Kategori: ASP
Gönderen: Admin
Tarih: 2008-12-07
Puan: 10   Puan:10 | Katılımcı:2 | Katılımcı : 2
Okunma: 11466
  
 
1 puan 2 puan 3 puan 4 puan 5 puan 6 puan 7 puan 8 puan 9 puan 10 puan

Kodlarımızı DLL haline getirmek için elimizde iki şeyin olması kâfi. Birincisi bir metin editörü (notepad bile yeter) ikincisi ise Visual Basic 6.0. Malzemelerimiz hazırsa tarifimize geçelim. Öncelikle basit bir ASP sayfası oluşturalım. Benim örneğim altta, siz kafanıza göre birşeyler karalayabilirsiniz.

<%
Response.Write "<html><head><title>ASP kodlarını DLL üzerinden çalıştırma denemesi</title>"
Response.Write "</head><body><font color=""#FF0000"" size=2 face=""trebuchet ms"">"
Response.Write "Bu sayfa bir DLL dosyasından türetilmiştir.</font></body></html>"
%>
Bu sayfamıza herhangi bir isim vererek şimdilik bir kenara kaydedelim. Bu haliyle kullanmayacağız ama yine de baştan hazırlayalım dedim. Şimdi Visual Basic programımızı DLL oluşturacak şekilde açalım. Bunun için izlememiz gereken yol şöyle:

Visual Basic programını açıp File menüsünden New´i tıklayın.
Açılan pencereden ActiveX DLL seçeneğini işaretleyip OK´a tıklayın.
Projemize ASP nesnelerini eklemek için Project menüsünden References seçeneğine tıklayın.
Açılan pencereden Microsoft Active Server Pages Object Library´i bulup işaretleyin ve OK´a tıklayın.
Projemize bu şekilde ASP desteğini eklemiş olduk. Şimdi sıra geldi kodlarımızı kişiselleştirmeye. Bu aşamada istersek kodları kendi dilimize bile çevirebiliriz. (Ben biraz denedim ama sanırım pek uymadı :))

´Buradaki Türkçe isimler tamamen sizin inisiyatifinize kalmış.
Private Baglam As ScriptingContext
Private Uygulama As Application
Private Istek As Request
Private Cevap As Response
Private Sunucu As Server
Private Oturum As Session

Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set Baglam = PassedScriptingContext
Set Uygulama = Baglam.Application
Set Istek = Baglam.Request
Set Cevap = Baglam.Response
Set Sunucu = Baglam.Server
Set Oturum = Baglam.Session
End Sub

Public Sub OnEndPage()
Set Baglam = Nothing
Set Uygulama = Nothing
Set Istek = Nothing
Set Cevap = Nothing
Set Sunucu = Nothing
Set Oturum = Nothing
End Sub

Kodlarımızı yazdıktan sonra projemize ve sınıfımıza birer isim verelim. Bu kısım önemlidir çünkü örnek sayfamızı çalıştırdığımızda oluşturduğumuz bu DLL dosyasını kullanabilmek için nesne oluştururken bu isimler kullanılır (ProjeAdı.SınıfAdı). Bu yazımda ben proje adımı "ASPden", sınıf adımı ise "DLLye" olarak belirledim. Bunların ne olacağı tamamen size kalmış. Önce projemize bir isim verelim ve tekrar Project menüsüne dönelim ve Project1 Properties menüsüne tıklayalım. (Eğer buraya gelmeden önce projenizin ismini değiştirdiyseniz sorun yok ama buna rağmen tekrar değiştirmek isterseniz bu menü "ProjenizinAdı Properties" olarak görünür.)

Açılan pencereden Project Name kutucuğuna istediğimiz ismi yazıyoruz (Ben ASPden demiştim.) ve Tamam´a tıklıyoruz. Projemizin artık bir adı var. Şimdi sıra sınıfımızı adlandırmaya geldi. Bunun için çalışma sayfamıza geri dönüyoruz ve sağ tarafta Properties - Class1 başlıklı pencereyi buluyoruz. (Eğer buraya gelmeden de sınıfınızın ismini değiştirdiyseniz ve yine de değiştirmek isterseniz bu pencerenin başlığı Properties - Sınıfınızın Adı olarak görünecektir.) Eğer bu pencereyi göremiyorsanız View menüsünden Properties Window seçeneğini tıklayın veya direkt olarak F4 tuşuna basın. Bu pencerede görüntülenen özelliklerden Name yazanın karşısına tıklayıp istediğimiz ismi yazalım. (Ben DLLye yazmıştım.) DLL dosyamız kısmen bitti ama işin en civcivli kısmına geldik: DLL dosyamıza kendi ASP kodlarımızı ekleyeceğiz.

Bunun için yazının başında hazırladığımız ASP dosyamızı açalım. Bir iki ufak değişiklikten sonra bu kodları az önce oluşturduğumuz kodlarla birleştirerek işlemimizi tamamlayacağız. Yukarıdaki kodlarda ASP´nin Response nesnesinin adını ben Cevap olarak değiştirmiştim. Bu nedenle ilk oluşturduğumuz ASP dosyamızdaki Response yazan yerleri Cevap olarak değiştireceğiz ve Deneme isimli bir fonksiyona ekleyeceğiz:

Public Sub Deneme()
Cevap.Write "<html><head><title>ASP kodlarını DLL üzerinden çalıştırma denemesi</title>"
Cevap.Write "</head><body><font color=""#FF0000"" size=2 face=""trebuchet ms"">"
Cevap.Write "Bu sayfa bir DLL dosyasından türetilmiştir.</font></body></html>"
End Sub
Son olarak kafalar karışmadan tüm kodları birleştirerek pişirmek için fırına verelim:

´Buradaki Türkçe isimler tamamen sizin inisiyatifinize kalmış.
Private Baglam As ScriptingContext
Private Uygulama As Application
Private Istek As Request
Private Cevap As Response
Private Sunucu As Server
Private Oturum As Session

Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set Baglam = PassedScriptingContext
Set Uygulama = Baglam.Application
Set Istek = Baglam.Request
Set Cevap = Baglam.Response
Set Sunucu = Baglam.Server
Set Oturum = Baglam.Session
End Sub

Public Sub OnEndPage()
Set Baglam = Nothing
Set Uygulama = Nothing
Set Istek = Nothing
Set Cevap = Nothing
Set Sunucu = Nothing
Set Oturum = Nothing
End Sub

Public Sub Deneme()
Cevap.Write "<html><head><title>ASP kodlarını DLL üzerinden çalıştırma denemesi</title>"
Cevap.Write "</head><body><font color=""#FF0000"" size=2 face=""trebuchet ms"">"
Cevap.Write "Bu sayfa bir DLL dosyasından türetilmiştir.</font></body></html>"
End Sub
Kodlama kısmı bittiğine göre artık DLL dosyamızı oluşturabiliriz. Bunun için File menüsünden Make ASPden.dll menüsünü tıklıyoruz. (Eğer projemizi farklı isimlendirdiysek bu menü Make Proje Adı.dll olarak görünecektir.) Ben kolaylık olsun diye projemi direkt olarak C: dizininin altında oluşturdum. Kaydedilen DLL dosyasının isminin hiçbir önemi olmadığı için istediğiniz ismi vererek projenizi derleyebilirsiniz (Yine ben Sniper adıyla derledim :) ). DLL dosyamızı oluşturduğumuza göre bunu sistemimize tanıtmanın zamanı geldi. Başlat menüsünden Çalıştır´ı seçiyoruz ve açılan pencereye regsvr32 C:Sniper.dll yazıp Enter tuşuna basıyoruz. Eğer karşımıza "DllRegisterServer / C:Sniper.dll başarıyla gerçekleştirildi." mesajı gelmediyse bir yerlerde hata yapmış olasılığımız üzerine yazıyı en baştan tekrar okuyoruz. (İnşallah yazım hatası yapmamışımdır da sürekli aynı yeri okumak zorunda kalmazsınız :P )

Tüm işlemlerimizi tamamladık. Artık derlediğimiz dosyamızı deneyelim değil mi? Eğer yukarıdaki kodları aynen kullandıysanız aşağıdakini de aynen kopyalayıp C:/inetpub/wwwroot/ klasörüne "asp2dll.asp" ismiyle kaydedin ve sonucu görmek için browser´ınızın adres kısmına http://localhost/asp2dll.asp yazın:

<%
Set Ornek = Server.CreateObject("ASPden.DLLye")
Ornek.Deneme()
%>




Yorumlar
Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin!
Yorum Ekleme Aparatı
Yorum Eklemek için lütfen sol menuden giris yapınız..
Toplam 0 yorum listelendi.