Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

ERROR 2147 con AnsiString

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: ERROR 2147 con AnsiString Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Creo que te falta en

//Funciones.h
#include <vcl.h>

Te debería funcionar
Volver arriba
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Me alegro. Razz
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.