problēma
Re: problēma
Tas backtrace arī tev dīvains izskatās.. Tur trūkst main() funkcijas un Sprite::Draw() funkcijas.
- kristapuciitis
- Posts: 163
- Joined: 03 Jun 2011, 14:22
Re: problēma
kāds backtrace?atis wrote:Tas backtrace arī tev dīvains izskatās.. Tur trūkst main() funkcijas un Sprite::Draw() funkcijas.
Gooby pls
Re: problēma
Tas pats Call Stack, kas tev skrīnšotā redzams: CRTStartup() -> WinMain() -> SDL_UpperBlit() -> ...
Re: problēma
Kas vainas WinMain? Ja studijā linko ar /SUBSYSTEM:WINDOWS argumentu, tad linkeris izmanto WinMain kā programmas entry-point'u, nevis main.atis wrote:Tas backtrace arī tev dīvains izskatās.. Tur trūkst main() funkcijas un Sprite::Draw() funkcijas.
Tas ka Sprite::Draw trūkst - tas gan dīvaini? Varbūt projekta Debug konfigurācijai ir ieslēgta optimizācija?
Vēl arī derētu visus rezultātus SDL funkcijām pārbaudīt, vai tās neatgriež kļūdas. Vienkāršākajā gadījumā, piemēram, izmantojot assert'us:
Code: Select all
SDL_Surface* temporary = SDL_LoadBMP(fileName);
assert(temporary);
SDL_Surface* optimized = SDL_DisplayFormatAlpha(temporary);
assert(optimized);
SDL_FreeSurface(temporary);
_surface = optimized;
Code: Select all
ifstream file(fileName);
assert(file.is_open());
- kristapuciitis
- Posts: 163
- Joined: 03 Jun 2011, 14:22
Re: problēma
Kur tieši tas trūkst? Un kāda optimizācija ieslēgta? I am too noob.bubu wrote: Tas ka Sprite::Draw trūkst - tas gan dīvaini? Varbūt projekta Debug konfigurācijai ir ieslēgta optimizācija?
Gooby pls
- kristapuciitis
- Posts: 163
- Joined: 03 Jun 2011, 14:22
Re: problēma
PlatformGmae tā vispār netiek izsaukta, bet pagaidām arī netaisos, jo programma karās pat bez tās izsaukšanas.bubu wrote: Jautājums - kurā vietā kodā tiek izsaukta Level::Load funkcija?
Gooby pls
Re: problēma
Manuprāt, SDL definē savu WinMain funkciju, kas izsauc lietotāja "main" funkciju.. tas tā, lai būtu portabls risinājums.Kas vainas WinMain? Ja studijā linko ar /SUBSYSTEM:WINDOWS argumentu, tad linkeris izmanto WinMain kā programmas entry-point'u, nevis main.
- kristapuciitis
- Posts: 163
- Joined: 03 Jun 2011, 14:22
Re: problēma
Ko jūs rakstat? o.0 Man problēma ir tā, ka programma nepalaižas pat tad, kad netiek izsaukta funkcija Level::Load(const char* fileName). Bet, ja es commentēju visu to Level::Load() funkciju, tad nekādu problēmu nav.
Gooby pls
Re: problēma
Nu hz, varētu domāt, ka tev tur ar SDL kaut kas ir salinkojies ne tā, kā vajag. Bet ar vienkāršu skatīšanos kodā un skrīnšotā neko sakarīgu nevaru pateikt. Pati proga kā tāda uz mana kompja strādā vienalga, vai ir Level::Load() vai nav.
Atrodi varbūt internetā kādu SDL piemēru ar gatavu MSVC++ projektu.
Edit: aizmirsu piebilst, ka es viņu būvēju uz MacOSX, neizmantojot visual c++ projekta failus.
Atrodi varbūt internetā kādu SDL piemēru ar gatavu MSVC++ projektu.
Edit: aizmirsu piebilst, ka es viņu būvēju uz MacOSX, neizmantojot visual c++ projekta failus.
Re: problēma
Jā tā ir. Es vienk domāju, ka tu brīnies, ka tur izsaucas WinMain, nevis main. Normāli šeit vajadzētu būt WinMain -> SDL_main fjas izsaukumam redzamam.atis wrote:Manuprāt, SDL definē savu WinMain funkciju, kas izsauc lietotāja "main" funkciju.. tas tā, lai būtu portabls risinājums.
Palaid programmu debugerī. Soli pa solim izpildi un atrodi rindiņu uz kuras viss apstājas/nokaras/utt...kristapuciitis wrote:Ko jūs rakstat? o.0 Man problēma ir tā, ka programma nepalaižas pat tad, kad netiek izsaukta funkcija Level::Load(const char* fileName). Bet, ja es commentēju visu to Level::Load() funkciju, tad nekādu problēmu nav.
Es neticu, ka aizkomentējot Level::Load, tad programma strādā. Tas nav iespējams. Jo tu nekur NEIZSAUC Level::Load metodi.