C++ | Fehlermeldung



  • hallo leute,

    vielleicht kann mir jemand von euch helfen, ich habe folgende Fehlermeldung:

    [Linker Fehler] Error: Ungelöste externe 'TKraft::setKraft(System::AnsiString, System::AnsiString)' referenziert von D:\DOKUMENTE\BORLAND STUDIO-PROJEKTE\KRÄFTE BERECHNEN\DEBUG_BUILD\KRAFT.OBJ
    

    Der zugehörige Code:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Kraft.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    class TKraft
    {
    	// Diese Klasse ist abhängig von der StringGrid "Table"!!!!
    	private:
    		 int zeile;
    		 void berechnen();
    		 void male(farbe);
    	public:
    		TKraft(int ccenterx,int ccentery);
    		void setKraft(String skraft, String swinkel);
    		//void ChangeKraft(float ckraft, float cwinkel);
    		void ZeileMarkieren(int zzeile);
    };  
    TKraft *Kraft;
    
    //---------------------------------------------------------------------------
    TKraft::TKraft(int centerx,int centery) {
    	  zeile = 1;
     } ;
    void setKraft(String skraft, String swinkel) {
    	  float kraft  = StrToFloat(skraft);
    	  float winkel = StrToFloat(swinkel);
    	  if(kraft > 1400 || winkel > 360) {
    			ShowMessage("blub");}
    	  else {
    			Form1->Table->Cells[1][1] =  FloatToStrF(kraft, ffFixed, 10,4);
    			Form1->Table->Cells[2][1] =  FloatToStrF(winkel, ffFixed, 10,4);
    	  }
     }      ;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    	Kraft = new TKraft(400,500);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    	Kraft->setKraft(edtKraft->Text,edtWinkel->Text);
    }
    //---------------------------------------------------------------------------
    

    Ich habe schon gegoogelt, aber ich finde leider keine Lösung meines Problems.
    Wo kann ich den oben genannten "Linker Fehler" beheben?
    Ich bin für jeden Ansatz dankbar.

    Grüße Oliver


  • Administrator

    void setKraft(String skraft, String swinkel) {
      // ...
    }
    

    Sollte wohl eher so lauten:

    void TKraft::setKraft(String skraft, String swinkel) {
      // ...
    }
    

    Sehr typischer Fehler. Passiert mir auch immer mal wieder, finde ihn aber inzwischen seeeehr schnell 🙂

    Und was habt ihr Borland Leute eigentlich mit eurem T vor den Klassen :p

    Grüssli



  • Sau doofer Fehler!!!

    Vielen Dank! Jetzt läufts.



  • void setKraft(String skraft, String swinkel) {
    

    ->

    void TKraft::setKraft(String skraft, String swinkel) {
    

    edit: grummel, zu spät


Anmelden zum Antworten