[so] [Tema3] teste win
adrian nistor
adriannistorrr at yahoo.com
Wed Dec 20 12:16:33 EET 2006
--- Dragan Stefan <ph0enix1810 at gmail.com> wrote:
> Modul in care se folosesc testele e prost
> documentat.
>
> Nu m-am prins inca ce trebuie exact facut cu cele 2
> obj-uri,
> ControlMonitor.obj si ControlRW.obj. Se linkeaza in
> dll-uri si functiile lor
> se exporta?
Da, se linkeaza in dll-uri. Functiile care sunt
folosite de teste se exporta
(dar sunt deja declarate cu __declspec(dllexport) ),
iar cele care trebuie sa le folosesti tu in
implementarea ta nu se exporta (pentru ca ele nu
sunt folosite de teste, ci numai de tine,
deci linkare)
Am facut asta si nu merge decat daca le
> declar cu
> __declspec(dllimport) in headerul din
> test(HeaderTest.h) si cu
> __declspec(dllexport) in CallbackMonitor.h si
> CallbackRW.h. Oarecum evident,
> daca vrei sa importi o functie dintr-un dll!
>
In CallbackMonitor.h si CallbackRW.h functiile care
sunt folosite de teste sunt deja exportate.
>
>
> Acelasi lucru se aplica la toate functiile importate
> in test.exe din
> dll-uri.
>
> Sample din HeaderTest.h:
>
>
>
> //////////////PENTRU TESTE
>
> int Verifica(int e,int s,int w,int x,int q00,int
> q11);
>
> void IncNrX();
>
> void DecNrX();
>
> int GetNrX();
>
> void ResetNrX();
>
> void SetNrCond(int nrCond);
>
> void FreeNrCond(int nrCond);
>
> int VerificaRW(int r, int w);
>
> int VerificaW(int w);
>
> int VerificaR(int r);
>
>
>
> typedef struct { } Monitor;
>
> /////////////EXPORTATE DE LibMonitor.lib
>
> Monitor* Create(int conditions,char policy);
>
> int Enter(Monitor *m);
>
> int Leave(Monitor *m);
>
> int Wait(Monitor *m, int cond);
>
> int Signal(Monitor *m, int cond);
>
> int Broadcast(Monitor *m, int cond);
>
> int Destroy(Monitor *m);
>
>
>
> ////////////EXPORTATE DE LibRW.lib
>
> Monitor* CreateRWMonitor();
>
> int GetNrConds();
>
> void StartCit(Monitor* m);
>
> void StopCit(Monitor *m);
>
> void StartScrit(Monitor* m);
>
> void StopScrit(Monitor *m);
>
> void ResetScritCit();
>
>
>
> Sunt declarata de parca ar fi intr-un alt c/cpp
> oarecare.
HeaderTest.h este inclus in teste. Dar aici este
nevoie numai de antetul lor, ca la compilare testul
sa stie cum arata aceste functi. De
__declspec(dllexport) este
nevoie numai in fisierele tale, pentru a arata
ca vrei sa le exporti. Cel care le foloseste(testul),
nu le exporta nicaieri, doar le foloseste.
>
>
>
> Eu zic ca testul este gresit. Cel putin pe sistemul
> meu nu merge decat daca
> le declar cu __declspec(dllimport).
>
> > _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the so
mailing list