| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Jue 04 Nov, 2004 2:17 pm Asunto: ERROR 2147 con AnsiString |
|
|
Hola a todos:
El error me al declarar una función como esta:
void Imprime (AnsiString cadena)
{
AnsiString hola = cadena;
.
.
. etc
}
el error es el siguiente:
nº E2147 'AnsiString' cannot start a parameter declaration.
La historia es que en otros archivos no me da ese error.
¿Alguien me puede orientar?
Un saludo y gracias
JC |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Jue 04 Nov, 2004 7:02 pm Asunto: |
|
|
Hola jc.
El problema no lo tienes con el AnsiString. El problema, casi seguro, está en que te falta alguna llave de inicio o fin de bloque en algún punto del código. Comprube que todas las llaves de inicio tienen su llave fin antes del código de tu función.
Te pongo un ejemplo de código erróneo:
| Código: | void Nada(int i){
switch(i){
case 0:
ShowMessage("i=0");
break;
case 1:
ShowMessage("i>0");
break;
}
void Imprime(AnsiString cadena){
AnsiString hola=cadena;
...
} |
El anterior código te debería lanzar un error similar porque le falta la llave fin del switch. Pruébalo y ya me dirás.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Vie 05 Nov, 2004 9:38 am Asunto: |
|
|
Está claro, Cerúleo, pero no es este el caso, te doy más detalles.
Yo tengo un form principal.
He creado un "Unit" al que llamo "Funciones.cpp" en el que meto, pues eso, funciones para mi aplicación.
Si defino la función de la que estamos hablando en el "Form Principal" me funciona bien.
Si la copio a "Funciones" da ese error.
Pienso que se debe de tratar de que me falta por incluir alguna librería en la cabecera del fichero pero no acierto cuál puede ser.
Gracias y un saludo.
JC |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 05 Nov, 2004 11:05 am Asunto: |
|
|
Se supone que en tu archivo Funciones.cpp implementas unas funciones previamente declaradas en un archivo llamado Funciones.h, y que luego en el formulario principal de tu aplicación habrás utilizado:
| Código: |
#include "Funciones.h"
|
¿Has tenido en cuenta todo esto? se que la observación puede parecer muy obvia pero a veces estas cosas se nos olvidan. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Vie 05 Nov, 2004 11:29 am Asunto: |
|
|
Si el problema de todo esto es que todas las funciones incluidas en "Funciones.cpp" funcionan correctamente, porque la linea de código
#inclue "Funciones.h" existe en "FPrincipal.cpp". Excepto esta.
Si la corto y la pego en "FPrincipal.cpp" y la defino de forma similar en ese "FPrincipal.h" funciona correctamente. Por eso decía que tal vez lo que falta es incluir en "Funciones.cpp" alguna librería, pero no lo tengo claro.
La definición es:
-----------------------------------------
void Imprime (AnsiString cadena)
{
AnsiString hola = cadena;
Showmessage(hola);
}
--------------------
y en Funciones.h pongo:
void Imprime (AnsiString cadena); |
|
| Volver arriba |
|
 |
farfala04 Invitado
|
Publicado: Vie 05 Nov, 2004 1:13 pm Asunto: |
|
|
No se si te comprendo bien, pero creo que (es mi humilde respuesta):
// En Principal.h
#include "funciones.h" //Esto hace que desde principal puedas usar todas las funciones que hayas declarado en Funciones.h
//En Principal.cpp
no necesitas poner nada, ya le dijiste en su fichero de cabecera que ibas a usar funciones de Funciones.h |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Vie 05 Nov, 2004 1:20 pm Asunto: |
|
|
| farfala04 escribió: | No se si te comprendo bien, pero creo que (es mi humilde respuesta):
// En Principal.h
#include "funciones.h" //Esto hace que desde principal puedas usar todas las funciones que hayas declarado en Funciones.h
//En Principal.cpp
no necesitas poner nada, ya le dijiste en su fichero de cabecera que ibas a usar funciones de Funciones.h |
No, si en esto tienes razón.
El problema es ese, haciendo lo que tú me dices, funcionan bien todas las funciones que hay en "Funciones.h", excepto esta. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Vie 05 Nov, 2004 1:42 pm Asunto: |
|
|
Creo que te falta en
//Funciones.h
#include <vcl.h>
Te debería funcionar |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Vie 05 Nov, 2004 1:56 pm Asunto: |
|
|
| Anonymous escribió: | Creo que te falta en
//Funciones.h
#include <vcl.h>
Te debería funcionar |
AHORA SIIIII !!!!
Ese era el problema, muchas gracias. |
|
| Volver arriba |
|
 |
farfala04 Invitado
|
Publicado: Vie 05 Nov, 2004 2:15 pm Asunto: |
|
|
Me alegro.  |
|
| Volver arriba |
|
 |
|