Fehler[Linker Fehler] Unresolved external 'TForm1::zufallzahl()' referenced from D:\CPLUSPLUS\BORLAND\UEBUNG\UNIT1.OBJ
-
Hallo!
Ich bekomme beim immer den fehler "[Linker Fehler] Unresolved external 'TForm1::zufallzahl()' referenced from D:\CPLUSPLUS\BORLAND\UEBUNG\UNIT1.OBJ und ich weiß nicht weitermein text: 3 Editfenster und ein button
#pragma hdrstop #include "Unit1.h" #include <stdio.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TEdit * Edit; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- TEdit* zufallzahl() { TEdit * Edit; randomize(); Edit->Text = String(random(10)); return(Edit); } void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1 = zufallzahl(); Edit2 = zufallzahl(); Edit3 = zufallzahl(); } //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten TEdit *Edit1; TEdit *Edit2; TEdit *Edit3; TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // Anwender-Deklarationen public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); TEdit* zufallzahl(); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
-
Hallo
- Wenn du eine Funktion zu einer Klasse zuordnest (Also in der Deklararation im Header einträgst) und die Implementation in der cpp-Datei vornimmst muß die Funktion mit dem Klassennamen angegeben werden
TEdit* TForm1::zufallzahl()- randomize sollte nur genau einmal im Programmstart ausgeführt werden
- Du deklarierst einen Zeiger auf TEdit, aber weist dem keine gültige Instanz zu. Deshalb wird dein Zugriff auf die Text-Eigenschaft ungültig
- Warum gibst du überhaupt TEdit und nicht gleich string zurück? Grade dein Zuweisen des Rückgabeergebnises an IDE-abhängige Member (Edit1...) ist ebenfalls schlecht. Benutzt gleich AnsiString oder int als Rückgabewert!
/Edit : und nicht zuletzt : sfds
bis bald
akari
-
Du hast bei der Definition der Methode 'zufallzahl()' das "TForm1::" vergessen.
(davon abgesehen hast du in der Funktion auch Mist gebaut - dein "TEdit* Edit;" ist nicht initialisiert, da dürfte der erste Zugriff zu einer Access Violation führen)