Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

22.11.2008, 11:07

inst elemet in vector

hi hab ein problem mit den std::vector
wenn ich elemente hinzufügen will
(benutze code::block und mingw)

Quellcode

1
2
3
4
5
6
7
8
9
10
std::vector<Sprite>::iterator it;
   it = this->lights.begin();
   this->lights.insert(it,nlights, Sprite ); //siehe hier
   for(uint i = 0;i < nlights;i++){
      int random_i = rand()%this->bitmaps.size();
      this->lights[i].setBitmap( & this->bitmaps[random_i] );
      this->lights[i].x = rand()%max_sW;
      this->lights[i].y = rand()%max_sH;
      this->lights[i].tone.set(rand()%255,rand()%255,rand()%255);
   }

fehler meldung:
expected primary-expression before ')' token

wenn ich da jetzt klamman setze

Quellcode

1
2
3
4
5
6
7
8
9
10
std::vector<Sprite>::iterator it;
   it = this->lights.begin();
   this->lights.insert(it,nlights, Sprite () ); //siehe hier
   for(uint i = 0;i < nlights;i++){
      int random_i = rand()%this->bitmaps.size();
      this->lights[i].setBitmap( & this->bitmaps[random_i] );
      this->lights[i].x = rand()%max_sW;
      this->lights[i].y = rand()%max_sH;
      this->lights[i].tone.set(rand()%255,rand()%255,rand()%255);
   }

fehler meldung:
In function `_ZSt19__iterator_categoryIP6SpriteENSt15iterator_traitsIT_E17iterator_categoryERKS3_':|
)]+0x7f)||undefined reference to `__imp___ZN6SpriteC1ERKS_'|
)]+0x5f)||undefined reference to `__imp___ZN6SpriteC1ERKS_'|

die klasse Sprite ist eine klasse aus einer DLL ich hab die lib richtig eingebunden

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

22.11.2008, 11:21

Könnte es sein, dass du Sprite nicht selber anlegen darfst? Also musst du ev. eine Factory benutzen?

Also kannst du sonst das hier machen:

C-/C++-Quelltext

1
2
Sprite sprite;
sprite.blabla() ;


Ansonsten sieht das für mich aber schon ziemlich nach nicht richtig eingebunderer lib aus..

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

22.11.2008, 11:39

hmm nein sieht so aus als könnte ich das nicht machen
aber was soll ich den bei der einbindung falsch machen

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

22.11.2008, 11:50

Zitat von »"kiba"«

hmm nein sieht so aus als könnte ich das nicht machen
aber was soll ich den bei der einbindung falsch machen


Dann wäre es mal von Vorteil, wenn du sagst, was das für eine lib ist. Oder gerade selbst mal ins Handbuch schauen, wie man mit dem Sprite umzugehen hat.

Wenn das eine lib ist, wirst du die wohl irgendwo im makefile angeben müssen. Hast du das (richtig) gemacht? Sprich funktionieren die anderen Teile der Bibliothek?

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

5

22.11.2008, 12:02

die lib hab ich an geben
mingw32-g++.exe -o bin\Debug\main.exe obj\Debug\main.o obj\Debug\Scene.o ..\bin\Debug\libSprite.a ..\bin\Debug\libWindow.a C:\Programme\CodeBlocks\MinGW\lib\libuser32.a C:\Programme\CodeBlocks\MinGW\lib\libgdi32.a C:\Programme\CodeBlocks\MinGW\lib\libglaux.a C:\Programme\CodeBlocks\MinGW\lib\libglu32.a C:\Programme\CodeBlocks\MinGW\lib\libopengl32.a

da fällt mir gerade ein muss man den auch die dll irget wie angeben

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

22.11.2008, 12:19

Zitat von »"kiba"«


da fällt mir gerade ein muss man den auch die dll irget wie angeben


Jo. Die .dll muss irgendwo im gleichen Verzeichnis liegen, oder du musst wenigstens irgendwo den Pfad angeben, wo die zu finden ist.

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

7

22.11.2008, 12:35

jo die is im gleiche verzeichnis \bin\debug
bei mir tauchen 15 solcher fehler auf
undefined reference to `__imp___......

und dann noch irget was in der c++ lib
obj\Debug\Scene.o: In function `_ZSt19__iterator_categoryIPN3FC26SpriteEENSt15iterator_traitsIT_E17iterator_categoryERKS4_':
C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:(.text$_ZSt10_ConstructIN3FC26BitmapES1_EvPT_RKT0_[void std::_Construct<FC2::Bitmap, FC2::Bitmap>(FC2::Bitmap*, FC2::Bitmap const&)]+0x5f): undefined reference to `__imp___ZN3FC26BitmapC1ERKS0_'
.....

Werbeanzeige