Tvorba DLL   zodpovězená otázka

VB.NET

Dobrý deň.

Začiatočnícka otázka. Nemohli by ste mi prosím niekto naznačiť ukážkou kódu, ako sa píše DLL a ako ju možno použiť v programe? Stačí niečo úplne jednoduché. Mám tušenie ako na to, ale nemám istotu. Tiež by postačila linka na túto tému. Ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

zkusím vás navést.1. založte si projekt typu Class Library - jeho výstup není EXE ale DLL.

Jeho veřejné funkce a třídy budou pak využitelné ostatními aplikacemi. Například:

Namespace MojeKnihovna
    Public Class MojeTrida
        Public Shared Function ZobrazDatum() As String
            Return "Dnes je " & Now.ToShortDateString & "!"
        End Function
    End Class
End Namespace

2. projekt vykompilujte - vyleze z něj DLL

3. v jiném projektu (už to může být obyčejná formulářová aplikace) klepnetě na Add References z menu Project. Zde si můžete vybrat libovolné DLL, které se připojí do projektu. Tím pádem můžete od této chvíle využívat jeho třídy, funkce atp.

Jestli je něco nejasného nebo máte další otázky, klidně se ptejte.

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Ďakujem. Ešte by som poprosil, ako mám ku knižnici pristupovať, keď ju už mám pridanú v referenciách. Napríklad po stlačení buttonu sa mi v label vypíše hodnota premennej z tejto knižnice. Akosi neviem dať dohromady kód. Treba okrem pridania do referencií ešte niečo deklarovať? Ja som to napísal takto, ale to nefunguje. Čo musím urobiť?

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = ZobrazDatum

    End Sub
End Class

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Už to mám a funguje mi to. Ďakujem za pomoc.

Public Class Form1
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = MyLib.MojeTrida.ZobrazDatum
    End Sub
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ano, přistupujete do ní pomocí namespaců, v našem případě: MyLib.

A jeden tip - pokud na začátek souboru s kódem napíšete:

Imports MyLib

Tak nemusíte už to MyLib psát. Bude stačit MojeTrida.ZobrazDatum.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Ešte mám otázku. Keď DLL napríklad vykonáva nejaké výpočty, ako dostanem hodnoty zo svojej aplikácie do DLL, aby ich DLL mohla spracovať?

Tak už som prišiel aj na to. Ešte raz veľmi pekne ďakujem za nápovedu. Mám v tom jasno a moc mi to pomohlo. Ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Samozřejmě není problém vytvářet objekty z DLL knihovny a nastavovat jim vlastnosti nebo volat procedury a funkce s argumenty, kterým předáváte vlastnosti.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Měl bych k tomuto vláknu ještě jednu podotázku... Chtěl bych se zeptat, jak ošetřím nenalezení knihovny. Normálně totiž program "škaredě" zhavaruje a chvilku i trvá než vyhodí nějakou systémovou výjimku. Rád bych, aby to dělal program sám. Např. nějaký MsgBox a ukončení aplikace. Díky za radu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obávám se, že před spuštěním to nezjistíte. Leda nějakým dalším programem (launcherem), který se spustí dřív o okontroluje přítomnost knihovny a její verzi.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback