Eli, olen testailemassa dll-oppaasta oppimia juttuja. Ajattelin tehdä seuraavaksi perus Notepadin, johon voisi laajentaa dll:ien avulla uusia ominaisuuksia.
Sitten huomasin, että en voi laittaa systeemiä toimimaan valitsemalla dll:iä VB:n References-ikkunasta. Eikä se onnistu declare-jutullakaan, koska en voi tietää mitä dll:iä ohjelmaan aiotaan ladata.
Kysymys kuuluu, voiko tällaistä systeemiä edes tehdä VB:llä? Jos voi niin miten?
En oo tuommosta aikasemmin kokeillu ite tehä, ja se ei menny ihan niin helposti, ku ensin luulin, mutta lyhyesti&ytimekkäästi homma hoituu näin:
Dim dll As Object Set dll = CreateObject(objektinnimi & "." & luokannimi) dll.munkivafunkkari
objektinnimi on sen DLL-projektin nimi ja luokannimi sen class modulen nimi.
DLL pitää olla rekisteröitynä regsvr32:lla.
DLL:n tiedostonimeä ei tarvitse tietää, mutta tuo sen objektinimi pitää, mikä on sinänsä ikävää, sillä tiedostonimi olis paljon helpompi ottaa selville :)
Ainakin molemmissa itse tekemissäni testiDLL:issä tuo objektinimi löytyy kohdasta 0x11b8 (desimaalina 4536), kotitehtäväksi jääköön kirjoittaa funkkari, joka lukee sitä DLL:ää binäärimuodossa ja onkii tuon nimen tuosta kohdasta :)
Testiesimerkki löytyy osoitteesta http://pp.kpnet.fi/blaze/temp/dlllatauslennosta.
Kiitos. Eiköhän tämän kanssa selvitä jonkin aikaa.
Olin muuten juuri lukemassa erittäin syvällistä opasta dll:ien käytöstä VB:ssä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.