Unresolved external


ComFreek

Mod | @comfreek
Moderator
#1
Hallo,

ich habe ein ganz normales Programm, ohne irgendeine Komponente.

Ich habe jetzt eine Klasse erstellt:

Code:
#include <vector>
typedef AnsiString TType;

class TItem
{
  public:
    TItem(TCanvas *_Canvas, TType _Type, Graphics::TBitmap *_BMP) : Canvas(_Canvas), Type(_Type), Visible(true), TransparentColor(clWhite), BMP(_BMP) {this->ID++;}
    TItem(TCanvas *_Canvas, TType _Type, AnsiString _BMP_FileName): Canvas(_Canvas), Type(_Type), Visible(true), TransparentColor(clWhite) {this->ID++;BMP = new Graphics::TBitmap();this->BMP->LoadFromFile(_BMP_FileName);}

    TItem();
    ~TItem() {ID--;}

    bool               Visible;
    Graphics::TBitmap *BMP;
    TType              Type;
    TCanvas           *Canvas;
    TColor             TransparentColor;
    std::vector<TColor> TransparentColorX;

    void               Draw(int x, int y);
    void               DrawX(int x, int y);
    unsigned short int GetID() {return ID;};


  private:
    static unsigned short int ID;
};
//------------------------------------------------------------------------------
void TItem::Draw(int x, int y)
{
  for (int i=0; i<this->BMP->Height; i++)
  {
    for (int j=0; j<this->BMP->Width; j++)
    {
      if (BMP->Canvas->Pixels[j][i]!=TransparentColor)
      {
        this->Canvas->Pixels[x+j][y+i] = BMP->Canvas->Pixels[j][i];
      }
    }
  }
}

void TItem::DrawX(int x, int y)
{
  bool found = false;
  for (int i=0; i<this->BMP->Height; i++)
  {
    for (int j=0; j<this->BMP->Width; j++)
    {
      for (unsigned int k=0; k<TransparentColorX.size(); k++)
      {
        if (BMP->Canvas->Pixels[j][i]==TransparentColorX.at(k))
        {
          found = true;
        }
      }
      if (found==false)
      {
        this->Canvas->Pixels[x+j][y+i] = BMP->Canvas->Pixels[j][i];
      }
      found = false;
    }
  }
}

unsigned short int TItem::ID = 0;
//------------------------------------------------------------------------------
Wenn ich aber ein Objekt davon erzeuge, aber es nicht initialisieren (TItem t;), bekomme ich immer folgende Fehlermeldung:
[Linker Fehler] Unresolved external 'TItem::TItem()' referenced from C:\USERS\Username\DOCUMENTS\CPP\TEST_PROGRAMM\RAHMEN.OBJ

Kann mir jemand helfen? Danke im Vorraus!!


PS: Entschuldigung, das ich überhaupt so viele Fragen stelle. Aber eigentlich ist ja ein Forum dazu da.
 
Zuletzt bearbeitet:

Neue Beiträge