LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

inconstistent type declarations

I have defined a global variable at .h file (lpbuff)

I want that various modules could access to that variable. Each module includes this .h file.

When I build the project, occurs three errors as you can see at the file attachment.
At this file, you can see it mentions 4 modules, exactly the 4 from I access to the global variable.
Do you know what is the possible error I am commiting?

Thanks in advance,
Silvia
0 Kudos
Message 1 of 5
(2,961 Views)
Good Afternoon.

I´m sorry my english is very bad.
I don´t Know , what´s the error , but if you do it The Better is That:

1. Write your global variable in a one module but in ".c"file.
Example :
char lpBuff[34];

2. In the rest of the modules , only write this in the ".c" for can to use the global variable:
Example: Rest Modules
extern char lpBuff[34];

This run OK

Tximiskurdi
0 Kudos
Message 2 of 5
(2,961 Views)
¡¡Hola!!, bueno, yo también soy española, escribí en inglés para obtener el mayor número de respuestas.

Lo que me propones en tu respuesta es lo que en un principio hacía, es decir, ponía las variables en el .c que las utilizaba más frecuentemente y en el resto las declaraba con extern.

Aunque ya sé que eso funciona, el problema es que además de la variable lpBuff hay 5 más como ella, y si las tengo que utilizar en 4 módulos más, es algo molesto ir poniendo todas en todos los módulos. Pensaba hacerlo de forma que poniendo un sólo #include "xxx.h" bastara.
Y lo curioso es, que el error sólo me lo da con esa variable, y no con ninguna de las otras.

Bien, gracias por tu ayuda.
Silvia.
0 Kudos
Message 3 of 5
(2,961 Views)
Buenas tardes Silvia.

Da gusto encontrar a alguien que trabaje en CVI y en español.

como tienes definida la variable lpBuff en el fichero ".h"? ; si quieres envíame por correo los ficheros que te dan problemas y ya miraré a versi encuentro la solución

Por lo demás si quieres podíamos hablar sobre CVI , problemas , dudas ,....lo que quieras , porque no es nada fácil encontrar a gente de habla hispana que trabaje con CVI .

Yo ya llevo más de 3 años trabajndo con CVI y he desarrollado bastantes aplicaciones( comunicaciones con PLC Siemens y Omron , tarjetas de tempeartura , envio de faxes , de mails , uso de bases de datos a través de ODBC , datasockets , llamadas al APi...) ; si quieres envíame un correo a la siguiente dirección:

f.ber
mejo.garapen@adegi.es

Sin más un saludo
Tximiskurdi
0 Kudos
Message 4 of 5
(2,961 Views)
Hi Silvia, sorry but my response must be in English. I think what you want is the following:

// beginning of .h file
#ifndef __HFILENAME // or some other symbol of your choosing
#define __HFILENAME

// variable declarations go here
int somevariable;
char someothervariable[30];

#endif // very important!!!
// end of h file

The compiler directives will only allow the linker to process the file once and you wont get link errors.
It works! I do it all the time.
Hope this helps.
0 Kudos
Message 5 of 5
(2,961 Views)