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 weiter

    mein 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)


Anmelden zum Antworten