LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Accessing global & safe variables

Hi,
I found at "MultithreadingOverview.pdf" NI file this lines at "Thread Safe Variable" chapter:
'If you need to access the thread safe variable from more than one source file, you use the
DeclareThreadSafeVar macro in a .h file to create declarations for the accessor functions.'

I have declared the safe var at a xxx.h file like this:

DeclareThreadSafeVar(int, SAcquire);

The modules (.c) that need to access this variable have the #include "xxx.h" statement, and uses the functions:

InitializeSAcquire (void);
UninitializeSAcquire (void);
*GetPointerToSAcquire (void);
ReleasePointerToSAcquire (void);
SetSAcquire (datatype val);
GetSAcquire (void);

When I build the project the most common error is the next:
"xxx.h" (17
,27) Missing parameter type
And at line 17 (where is declared the safe var), is focused the SAcquire parameter.

Does anybody help me about this? Has anybody extra documentation (number of parameters, usage mode, etc.) about the 'DeclareThreadSafeVar' macro?

Thanks in advance,
Silvia
0 Kudos
Message 1 of 2
(2,691 Views)
Buenas tardes Silvia .

Como sé que eres española y mi ingles es bastante malo , te contesto en español.

Si no me equivoco el problema que tienes es debido a que en cada fichero donde incluyes el fichero" xxx.h" intenta definir cada uno de ellos su variable " SAFE" .

Para solucionar el problema realiza lo siguiente :

1. En tú fichero "XXX.h" al cominzo escribe lo siguiente:
#ifndef XXX_H choosing
#define XXX_H

2. A continuación pon la siguiente línea :
#define "utility.h"
Esto es lo que hará que tú error desaparezca.

3. Al final del fichero "XXX.h" escribe lo siguiente:
#endif

Creo que funcionará correctamente , además esta también creo que es la solución a la anterior duda que planteaste.

Sin más un saludo
Tximiskurdi

0 Kudos
Message 2 of 2
(2,691 Views)