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

Koristiti dll sa vcl komponentama

[es] :: C/C++ programiranje :: Koristiti dll sa vcl komponentama

[ Pregleda: 2325 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bcavlin
Branislav Cavlin
Novi Sad

Član broj: 4824
Poruke: 4
*.voban.co.yu.

Sajt: bcavlin.da.ru


Profil

icon Koristiti dll sa vcl komponentama07.07.2003. u 09:39 - pre 253 meseci
Cao,

da li se neko vec sreo sa ovakvim problemom u cbuilderu 5:

Koristim dva modula, jednu mdi formu i jedan dll fajl. Za dll fajl sam kreirao lib i u njega sam stavio formu sa jednom komponentom. U okviru cpp fajla za dll postoji sledeci kod

#pragma link "imeobjfajlakomponente"

isti taj kod se javlja u mdi formi posto i tamo koristim istu komponentu. Naziv komponente nije bitan jer se greska javlja sa bilo kojom komponentom koja koristi pragma link.

Kada pozovem dll fajl ( tj funkciju ) bez ove komponente, recimo samo da mi se prikaze forma, sve radi OK, a kada pozovem fajl sa komponentom glavna forma mi javlja gresku EClassNotFound exception.

Takodje ako stavim projekt fajl opciju delay dll load za doticni dll, sve radi dok ne ubacim neku stranu komponentu, a onda mi prikazuje da ne moze da radi delay zbog postojanja odredjenih promenjljivih.
Branislav Cavlin
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Koristiti dll sa vcl komponentama07.07.2003. u 11:50 - pre 253 meseci
Jesi li tamo ubacio odgovarajuci(e) heder(e)?
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

bcavlin
Branislav Cavlin
Novi Sad

Član broj: 4824
Poruke: 4
*.voban.co.yu.

Sajt: bcavlin.da.ru


Profil

icon Re: Koristiti dll sa vcl komponentama08.07.2003. u 09:54 - pre 253 meseci
Naravno,

jer mi se forma ne bi prikazala nikako. Ali posto sam jos radio na problemu utvrdio sam sledece:

posto mi kompajler linkuje sve objekte ( deklaracije ) u lib, kada exe fajl naidje na istu takvu definiciju ( custom komponente ) ispada da ne moze da pronadje njegovu pravu definiciju iz PACKAGE kojeg sam instalilrao, tako da mi prijavljuje konflikt i ne moze da pronadje definiciju klase. Pokusao sam i da stavi #pragma package (smart_init,weak) da bih mu rekao da ne zelim da mi uradi hardcode definicija vec da striktno koristi one koje su mu instalirane i pozvane od strane programa. Zbog toga se javlja i problem kod delay dll load.

Posto se vise nisam hteo zezati sa ovim problemom, kreirao sam forme na standardan nacin tj. LoadLibrary. E sad imam problem da kada kreiram vise formi u dll-u, recimo Child forma, pa u njoj DataModlue i Frame, Kada izlazim iz glavne aplikacije CodeGuard mi javlja problem curenja memorije ili jos gore, ne javi mi nista vec se Aplikacija ubije kada treba da deregistruje komonente i javi mi da ima veliki broj gresaka i da je usla u nekakav loop.

Da bih inicijalizovao dll koristim globalni pointer za Application i pre nego sto uradim release dll-a Apllication pointer vracam MDI formi.


Forme sam pokusao da kreiram i sa new i sa Application->CreateForm ali mi se desava isti problem prilikom gasenja glavnog programa. Inace sve radi OK, tj. child prozor sa svim formama se prikazuje OK, i program radi predvidjeno bez curenja memorije.

Da li neko mozda zna dobar namenski forum za borland builder gde je cou da se pominju ovakve stvari?
Branislav Cavlin
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.pexim.co.yu



+62 Profil

icon Re: Koristiti dll sa vcl komponentama12.07.2003. u 16:09 - pre 253 meseci
Uh, nisam bas siguran da sam pohvatao gde ti se sta nalazi, ali generalno gledano 'class not found' se leci pozivom RegisterClass() funkcije. A gde treba da stavis taj poziv, provali sam, jer kao sto rekoh, nije mi najjasnije tvoje pismo.
Jos nesto. Negde u help-u pise da RegisterComponent() ne povlaci automatsko pozivanje RegisterClass (ili tako nesto slicno, davno bese).
U svakom slucaju, ako imas klasu koju nisi instalirao kao komponent (u paletu) a zelis da bude dostupna (vidljiva) za kreiranje instanci, resenje je RegisterClass().
Pozdrav

Rajko
 
Odgovor na temu

[es] :: C/C++ programiranje :: Koristiti dll sa vcl komponentama

[ Pregleda: 2325 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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