[ reiser @ 17.01.2010. 12:15 ] @
Imam neki program koji funkcionise po sistemu pluginova - ima PluginManager klasu koja organizuje plugine, njihovo ucitavanje i pozivanje. Program sadrzi jednu strukturu u kojoj se nalaze svi objekti koji bi trebalo da se koriste od strane plugina i programa zajedno i ja pokazivac ka toj strukturi prosledjujem pluginu. Evo primera plugina: Plugin Evo i strukture koja se koristi od glavnog programa i prosledjuje pluginu po potrebi: SharedData Dakle function Main(shd : pointer) : Integer; stdcall; je funkcija koja bi trebala da se pozove iz glavnog programa, medjutim program mi se crashuje kad to pokusam. Pozivam je sa MainFunc(@SHD) gde je SHD tipa TSharedData, a MainFunc je prototip funkcije i adresu do nje sam dobio sa LoadLibrary() i GetProcAddress(). I sto je najzanimljivije, poziv funkcije prodje, tj funkcija u pluginu se izvrsi i ja dobijem zeljeni output, ali se program odmah nakon toga crashuje. //edit Mislim da sam nasao gde lezi problem - kad izbacim iz uses liste ReiIRC i ReiStringArray, tj kad u DLL-u ne includujem nista onda poziv funkcije prolazi sasvim fino. Medjutim, meni je potrebno da koristim ReiIRC iz DLL-a kako bih mogao da iz plugina pisem po IRC-u. Kako da ovo izvedem ? [Ovu poruku je menjao reiser dana 17.01.2010. u 13:25 GMT+1] |