SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: jcjulio en Jueves 9 de Febrero de 2006, 01:04
-
Bueno, soy un novato en C++ Builder, y tengo un problema que no me deja avanzar.
Cuando le asigno un evento a un objeto: Por ejemplo un ONCLIK a un boton y luego quiero eliminar ese evento para luego asignarle otro, no me lo permite me vota ek error:
[Linker Error] Unresolved external '__fastcall TForm1::FormClick(System::TObject *)' referenced from F:\ARCHIVOS DE PROGRAMA\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
Si pueden ayudenme lo mas rapido posible
-
Ese es un error muy molesto que tiene una muy fácil solución (por cierto a mi también me costo descubrir como arreglarlo). Abre el .h (Header file) de tu aplicación, algo simple sería:
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TEdit *Edit1;
TLabel *Label1;
TEdit *Edit2;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Como puedes ver ahí está registrado el evento del botón y el compilador te dice que no lo encuentra o algo así, lo que tienes que hacer es comentar o eliminar esa línea (la que puse en rojo) y el problema está resuelto.
Fijate que en el error que aparece te dice cual es el que causa el problema, en tu caso sería: [Linker Error] Unresolved external '__fastcall TForm1::FormClick(System::TObject *)' referenced from F:\ARCHIVOS DE PROGRAMA\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
Espero te sirva y me hayas entendido.
-
Gracias por el dato, si me sirvio. Investigando un poco más escontre otra forma de hacerlo, y es eliminando la parte del código que pertenece al evento del que se desea eliminar del UNIT1.CPP, y al compilar de nuevo, automáticamente se elimina tambien la parte del header file. Pero solo se debe eliminar el código que uno creo no lo que automaticamente crea el C++ Builder, porque sino tampoco va a compilar.
El problema que me ocurrió era que yo solo comentaba esta parte del código, y por ende la parte del header file no se eliminava, porque ha si estuviera comentado había algo en ese evento.
Muchas Gracias
-
De nada, y que bien que hayas encontrado la solución y que te haya servido lo que te dije porque ese problema ya me estaba poniendo de mal humor.