[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