Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dinamicko ucitavanje dll-ova

[es] :: Visual Basic 6 :: Dinamicko ucitavanje dll-ova

[ Pregleda: 2773 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.scnet.yu



+104 Profil

icon Dinamicko ucitavanje dll-ova03.05.2004. u 02:07 - pre 243 meseci
Kako napraviti spisak dll-ova koji imaju odredjenu proceduru u sebi? Malo konfuzno zvuci ali evo malog objasnjenja:
Pravim program koji bi trebao da bude prosiriv sa odredjenim funkcijama koje ce se nalaziti u exskternim dll falovima (dll-ove ja pravim u VB-u). Program bi trebalo da uzme listu svih dll-ova iz nekog dira (nije probelm), a zatim da pozove odgovarajucu proceduru u svakom nadjenom dll-u (tip subStart). U toj proceduri bi trebalo da stoji sta taj dll radi i kako da se pojavi ta funkcija u glavnom programu. Moj najveci problem (i za sad jedini) je kako definisati funkcije sa "Private/Public declare function ....." ako ne znam ni naziv dll-a ni broj koliko ce ih biti. Mogu li u kodu dinamicki da dodam nazive funkcija koje ce program pozivati i naravno kako.

Nadam se da je objasnjenje jasno, ako nije pokusacu da budem detaljniji.
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
62.108.109.*

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Dinamicko ucitavanje dll-ova03.05.2004. u 11:52 - pre 243 meseci
Koliko vidim, ti bi hteo da pozivas funkcije iz API DLLa (Private/Public declare function ...), a da DLL pravis u VBu. Mislim da u VBu mozes da pravis samo ActiveX DLLove, a oni se koriste tako sto kreiras objekat iz DLLa.

Ajde probaj da detaljnije objasnis sta hoces da napravis (cemu bi to sluzilo).
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.scnet.yu



+104 Profil

icon Re: Dinamicko ucitavanje dll-ova03.05.2004. u 18:32 - pre 242 meseci
Hteo bih da napravim jedan program koji ce skidati HTML stranicu sa net-a i sa nje izvlaciti neke podatke. Problem je sta ako se izvrsi redizajn te HTML strane ili samo njen path. Da ne bi menjao ceo program mislio sam da celu rutinu za obradu strane stavim u jedan DLL i po potrebi samo njega menjam, a onda ako vec pravim dll mislio sam da ubacim podrsku da kasnije taj isti program moze da skida stranice sa drugih server-a ukoliko se oni pojave. Znaci stavim u neki folder server1.dll, server2.dll .... i moj program pogleda sve DLL ove u tom folderu i izbaci sa kojih sajtova moze da skida strane i da ih obradjuje. Valjda sam bio malo jasniji.
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.scnet.yu



+104 Profil

icon Re: Dinamicko ucitavanje dll-ova03.05.2004. u 18:33 - pre 242 meseci
Citat:
mladenovicz:
Koliko vidim, ti bi hteo da pozivas funkcije iz API DLLa (Private/Public declare function ...), a da DLL pravis u VBu. Mislim da u VBu mozes da pravis samo ActiveX DLLove, a oni se koriste tako sto kreiras objekat iz DLLa.

Ajde probaj da detaljnije objasnis sta hoces da napravis (cemu bi to sluzilo).


Ok pogledao sam i u pravi si. Mogu da pravim samo ActiveX dll, ali opet je problem kako ih dinamicki ucitati
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
62.108.109.*

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Dinamicko ucitavanje dll-ova04.05.2004. u 11:03 - pre 242 meseci
Promena patha stranice ne bi trebalo da zahteva izmenu aplikacije. Napravi da objekat koji parsira stranu ima property URL, pa ga prosledjuj iz glavne aplikacije, ili ako moras da imas skup predefinisanih vrednosti cuvaj URLove u nekom settings fajlu (txt, ini, xml, ...).

Ovo kako si ti zamislio da radi mi izgleda prilicno "nestandardno". Posto su ActiveX DLLovi u pitanju, svaki od DLLova mora da bude registrovan (regsrv32) pre koriscenja. To nije problem, posto mozes da koristis Shell da bi registrovao sve DLLove iz nekog foldera. Druga stvar je kreiranje objekata. Objekat za parsiranje bi morao da deklarises As Object, pa da kreiras objekat (morao bi da znas kako se zovu klase unutar DLLa) sa CreateObject. Kako bi sve ovo radilo nemam pojma, probaj.

Ja bi to napravio ovako:
1) napravis interfejs koji parsira HTML stranu
2) napravis onoliko DLLova koliko ti treba, s tim sto svaki od objekata za parsiranje iz svakog DLLa implementira interfejs iz tacke 1. Pogledaj u MSDNu interface i Implements statement.
3) u glavnoj aplikaciji bi imao jedan Select Case koji bi zavisno od tipa HTML strane kreirao odgovarajuci objekat. Znaci kad napravis novi DLL, samo treba da dodas novi Case u tom selectu i to je jedina izmena koja je potrebna.

Code:

Private objParser As ParserInterface

    Select Case HTMLType
        Case 1
            Set objParser = New Parser1.Parser
        Case 2
            Set objParser = New Parser2.Parser
        Case 3
            Set objParser = New Parser3.Parser
        Case 4
            '......
    End Select
    
    Call objParser.Parsiraj

 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.scnet.yu



+104 Profil

icon Re: Dinamicko ucitavanje dll-ova04.05.2004. u 12:29 - pre 242 meseci
Citat:
mladenovicz:
Promena patha stranice ne bi trebalo da zahteva izmenu aplikacije. Napravi da objekat koji parsira stranu ima property URL, pa ga prosledjuj iz glavne aplikacije, ili ako moras da imas skup predefinisanih vrednosti cuvaj URLove u nekom settings fajlu (txt, ini, xml, ...).

Ok to nije problem, ali sta ako dodje do redizajna stranice? To vec ne mogu da postavim negde u properties
Citat:

Ovo kako si ti zamislio da radi mi izgleda prilicno "nestandardno". Posto su ActiveX DLLovi u pitanju, svaki od DLLova mora da bude registrovan (regsrv32) pre koriscenja. To nije problem, posto mozes da koristis Shell da bi registrovao sve DLLove iz nekog foldera.

Ne moraju da se registruju ako se nalaze u istom folderu gde i EXE.
Citat:

Ja bi to napravio ovako:
1) napravis interfejs koji parsira HTML stranu
2) napravis onoliko DLLova koliko ti treba, s tim sto svaki od objekata za parsiranje iz svakog DLLa implementira interfejs iz tacke 1. Pogledaj u MSDNu interface i Implements statement.
3) u glavnoj aplikaciji bi imao jedan Select Case koji bi zavisno od tipa HTML strane kreirao odgovarajuci objekat. Znaci kad napravis novi DLL, samo treba da dodas novi Case u tom selectu i to je jedina izmena koja je potrebna.

E sad mi ovde nista nije jasno kao prvo svako DLL ce imati funkciju sa istim imenom i istim parametrima tako da pozivanje nece biti problem, ali kako da kazem programu da postoje. Za ono sto si ti napisao sa Select Case treba da znam koliko cu imati DLL-ova, a t o zelim da izbegnem
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
62.108.109.*

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Dinamicko ucitavanje dll-ova04.05.2004. u 13:24 - pre 242 meseci
Citat:
vujkev:
Ok to nije problem, ali sta ako dodje do redizajna stranice? To vec ne mogu da postavim negde u properties


Tip HTML strane (koji ce se parser koristiti) cuvaj u settingsu

Citat:
vujkev:
Ne moraju da se registruju ako se nalaze u istom folderu gde i EXE.


Ja koliko znam ActiveX komponente moraju da se registruju, bez obzira gde se nalaze. API DLLovi moraju biti u pathu.

Citat:
vujkev:
E sad mi ovde nista nije jasno :( kao prvo svako DLL ce imati funkciju sa istim imenom i istim parametrima tako da pozivanje nece biti problem, ali kako da kazem programu da postoje. Za ono sto si ti napisao sa Select Case treba da znam koliko cu imati DLL-ova, a t o zelim da izbegnem


Ovo resenje sa interfejsom zahteva minimalne izmene u kodu (dve nove linije za svaki novi parser). Ako neces da menjas kod glavne aplikacije probaj ovo sa CreateObject. Ne znam da li ce raditi, ali mi nista drugo ne pada na pamet.

 
Odgovor na temu

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
81.93.67.*

Sajt: www.nsc.ba


+4 Profil

icon Re: Dinamicko ucitavanje dll-ova10.05.2004. u 12:19 - pre 242 meseci
Evo moje ideje za to:
1. prvo ovdje imas kako da izlistas sve fajlove u nekom folderu. http://www.elitesecurity.org/tema/28643
2. kad radis dll u vb u resource ubaci neki text fajl sa imenima funkcija u tom dll-u.
tako da kad prodjes kroz te dll-ove ocitas taj resource uz pomoc loadresdata mozes da znas gdje sta ima i tada mozes da pozoves f-ju koja ti treba jer znas u kojem se dll-u sta nalazi. razumijes.
3. zeljko je meni jedanput pisao neki dll koji nazalost nije radio ali sam ja nesto caprkao i uspio sam da strpam nekih 5-6 f-ja u njega. dll je radio sve ok a nisam ga bio registrovao a bio je u folderu kao i program.
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
62.108.109.*

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Dinamicko ucitavanje dll-ova10.05.2004. u 12:58 - pre 242 meseci
3) kad kompajliras DLL on je onda registrovan. Kad ga kopiras na neku drugu lokaciju da bi se koristio sa te lokacije mora da se registruje.
 
Odgovor na temu

[es] :: Visual Basic 6 :: Dinamicko ucitavanje dll-ova

[ Pregleda: 2773 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.