.[ ČeskéHry.cz ].
vector z STL a SDL

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 25. únor 2008, 17:24:03    Předmět: vector z STL a SDL Odpovědět s citátem

Dělám svou 3. hru v SDL. Bohužel, se mi SDL nějak nekamarádí s vectorem ze standartní třídy šablon. Konkrétně mi linker vyhazuje:
kód:
1>main.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: __thiscall std::_Vector_const_iterator<int,class std::allocator<int> >::_Vector_const_iterator<int,class std::allocator<int> >(int *,class std::_Container_base_secure const *)" (??0?$_Vector_const_iterator@HV?$allocator@H@std@@@std@@QAE@PAHPBV_Container_base_secure@1@@Z)

a kód:
kód:
#include <SDL.h>
#include <fstream>
#include <istream>
#include <SDL_image.h>
#include <vector>
#include <SDL_ttf.h>
#include "sprite.h"


;
//using namespace std;

#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL_image.lib")
#pragma comment(lib, "SDL_ttf.lib")

std::fstream chyba("chyba.txt");
SDL_Surface *okno;
SDL_Surface *ikona = NULL;

std::vector<int> t;



bool ProcessEvent()
{
   SDL_Event event;

   while(SDL_PollEvent(&event))
   {
      switch(event.type)
      {
         // Klavesnice
         case SDL_KEYDOWN:
            switch(event.key.keysym.sym)
            {
               case SDLK_ESCAPE:
                  return false;
                  break;

               default:
                  break;
            }
            break;

         

         // Pozadavek na ukonceni
         case SDL_QUIT:
            return false;
            break;

         default:
            break;
      }
   }

   return true;
}



int main(int argc, char *argv[])
{
   //Inicializace
   if(SDL_Init(SDL_INIT_EVERYTHING | SDL_INIT_NOPARACHUTE ) == -1)
   {
      chyba << "Nepodařila se inicializace" << SDL_GetError();
      return false;
   }
   //inicializace textu
   if(TTF_Init() == -1)
   {
      chyba << "Nepodařila se inicializace fontu" << TTF_GetError();
   }
   //Nasteveni okna
   okno = SDL_SetVideoMode(800, 600, 32, SDL_SWSURFACE);
   //Nastaveni popisku
   SDL_WM_SetCaption("ProjectEngin", NULL);
   if(ikona != NULL)
   SDL_WM_SetIcon(ikona, NULL);

sprite u;
{
sprite i;
i.load("flower.png");
u = i;
}
//Konec inicializace


   t.push_back(5);
   bool done = false;
   while(!done)
   {
      done = !ProcessEvent();
      u.Draw(20,20);
      SDL_UpdateRect(okno,0,0,800,600);
      SDL_Delay(100);

   }

   // Deinicializace a konec
   SDL_Quit();
   TTF_Quit();

return 0;
}


Používam VS 2008. SLD mám překompilované(tu chybu mi to hází i u originálu). Už jsem hledal, ale všude radí přkompilovat - což jsem udělal.

PRosím o radu někoho zkušenějšího.

Děkuji za každou radu!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 25. únor 2008, 18:07:20    Předmět: Odpovědět s citátem

ak som odtial vysekol pravdepodobne tvoju hlavicku sprire a aj ten objekt tak to islo scompilovat aj spustit v Code::Blocks
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 25. únor 2008, 18:15:32    Předmět: Odpovědět s citátem

JJ, to vím, že jiný kompilátory to zkompilují, ale já bych to rád zprovoznil pod VS.

Jinak zkusil jsem sprite a vše oddělat; nechal jsem jenom SDL; a problém stále je...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 25. únor 2008, 18:35:25    Předmět: Odpovědět s citátem

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=225157&SiteID=1 - a co toto, to by ti nepomohlo?
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 25. únor 2008, 19:32:36    Předmět: Odpovědět s citátem

TAk jsem dle toho něco přenastavil, a podařilo se mi spustit Debug vezi avšak relase nikoliv. Bohužel ani tak mi to nefunguje - nedaří se mi to spustit - C runtime library mi vyhazuje chybu.
http://img122.imageshack.us/my.php?image=chybavi9.jpg

Progaram Dependency walker mi vypisuje: Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Neznáte někdo StepByStep tutoriál na SDL ve VS? Popřípadně nějaké IDE, které má pár vychytávek jako VS?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 25. únor 2008, 19:44:51    Předmět: Odpovědět s citátem

neviem ale pokial viem tak VS ma moznost pouzivat aj gcc kompilator. tak ako Code::Blocks podporuje asi 8 kompilatorov
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 25. únor 2008, 23:22:42    Předmět: Odpovědět s citátem

Pro debug verzi nastav jako runtime knihovnu Multi-threaded Debug a pro release verzi Multi-threaded (v nastavení projektu - c++ - code generation)
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 26. únor 2008, 20:10:59    Předmět: Odpovědět s citátem

To Eosie: JJ, tak to mám nastavené. V SDL, jsem už dělal, jenže jteď sem poprvé použil vector - a linker se mi nekamárádí s vectorem a SDL....

Jinak asi začnu kompilovat přes GCC.....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Weny Sky



Založen: 28. 07. 2007
Příspěvky: 241

PříspěvekZaslal: 26. únor 2008, 20:34:04    Předmět: Odpovědět s citátem

nastav si Multi-Thread Debug DLL ja to tak nastavuju a zadny problem s tim nemam
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 26. únor 2008, 21:09:50    Předmět: Odpovědět s citátem

Když se tak dívám na ten error, napadá mě akorát, že ti tam chybí manifest.

weny> Multi-Threaded DLL pomáhá jen tehdy, pokud alokuješ data z jedné CRT knihovny (např. v aplikaci: pomocí libcmt.lib = multi-threaded (statická)) a pokoušíš se to uvolnit jinou CRT knihovnou (např. ve vlastním dll: pomocí msvcrX.dll = multi-threaded dll na VC++ verze X), protože každá z těch knihoven si může držet vlastní informace o heapu a není dobrý, když je mezi sebou mícháš. Ale i Multi-threaded DLL není samospasitelné - např. tvoje dll knihovna může být kompilována jinou verzí VC++ než aplikace (a hned používáš pokaždé jinou msvcrX.dll). Wink

Jinak tohle rozhodně nemá nic společného s SDL a ani za to nemůže VC++, spíš tam má autor threadu něco blbě nastavené nebo používá špatné binárky k SDL (třeba binárky kompilované s GCC). Nejbezpečnější je všechno kompilovat stejným compilerem se stejnou verzí základních knihoven.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 27. únor 2008, 14:51:15    Předmět: Odpovědět s citátem

Tak se omlouvám, že jsem vás obtěžoval.
Problém jsem vyřešil - založil jsem nový projekt...Knihovny jsem totiž překompilovával až poté, co jsem stávající projekt založil a přišel na chybu s vectorem....

Děkuji vám všem za ochotu pomoci
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna