Unverständlicher Fehler
-
Hallo,
also, ich habe eine Klasse, die folgendermaßen aussieht:
class CTextSprite { public: CTextSprite(); ~CTextSprite(); void SetText(AnsiString txt); void SetColor(int r,int g, int b); void SetColor(unsigned long c); void SetBGColor(int r,int g, int b); void SetBGColor(unsigned long c); void SetSize(int size); void SetFont(AnsiString Font); void SetPosition(int x,int y); void SetCenterX(int x); void SetCenterY(int y); void Create(); void Render(GLubyte *dst); void Clear(GLubyte *dst); int GetSizeX() { return w; } int GetSizeY() { return h; } int GetPosX() { return Pos.x; } int GetPosY() { return Pos.y; } bool bold; bool italic; bool underlined; bool tranparent_BG; private: Graphics::TBitmap *CV; AnsiString Text; unsigned long TextColor,BGColor; int TextSize; AnsiString FontName; TPoint Pos; int w,h; GLubyte *Container; PRGBTriple Row; int r,g,b; };Die Funktion Clear() sieht folgendermaßen aus:
void CTextSprite::Clear(GLubyte *dst) { for(int y=0;y<h;y++) { for(int x=0;x<w;x++) { dst[4*((y+Pos.y)*g_pFramework->screen_x+x+Pos.x)+3] = 0; } } }Und in dieser Funktion gibt es folgendes Problem:
Sobald ich das Programm vom C++ Builder aus starte, erscheint bei Aufruf der Funktion die Fehlermeldung, dass ein Fehler Klasse EAcces Violation aufgetaucht und ein Fehler biem Zugriff im Modul [dem Programm] aufgetaucht, woraufhin ich das Programm manuell abbrechen muss.Ich habe zumindest herausgefunden, dass der Fehler auftritt, sobald ich auf h oder w zugreife (egal ob per ShowMessage oder in dem Fall durch Zuweisung).
Ich habe allerdings keine Ahung, wieso! In einer anderen Funktion, zum Beispiel Render(), wird genauso auf die Werte zugegriffen, und da klappt alles.
Was außerdem merkwürdig ist, wenn ich das Programm außerhalb starte, kommt keine Meldung und es wird auch alles problemlos angezeigt.
Weiß einer Rat?
Danke schonmal!
-
Zur Zeit herrscht große Kristalkugelknappheit weil die Preise auf dem Weltmarkt explodiert sind.
Ohne etwas dazugehörigen Quelltext wird es also schwierig dir zu helfen.
Aber mal ein simpler Rat: Der Debugger ist dein Freund.