dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

terrain'a probleemas...
Goto page Previous  1, 2
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Aug 21, 2007 8:23 am    Post subject:

stack size nohackoju uz 2 MB bet tagad tajaa pashaa chkstk.asm uzraada access violation reading location.... 0x0002f000 nu nez, baigaas tur probleemas...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 21, 2007 8:43 am    Post subject:

Vecais_Dumais_Laacis wrote:
Code:
char FileName[512]
vietaa labaak lieto
Code:
char *FileName

Nop. Tā nav itin nekādi labāk. C++'ā tur nav īsti nekādas atšķirības starp abām sinaksēm. Nedaudz labāk ir rakstīt const priekšā, taču riktīgi labāk ir lietot:
Code:
const std::string& FileName
.
Tas gan pamatīgi var palīdzēt pret visādiem memory gļukiem.

snake5: varu derēt, ka tu stekā vai nu:
1) glabā pārāk lielus objektus (megabaitos), tā vietā ir jālieto heaps.
2) sačakarē atmiņu ar new/delete/malloc/free.
3) pārraksti pāri buferim (piem izdalīti ir 100 baiti stekā/heapā, bet tu raksti 101 vai vairāk baitus)
Parasti 99% gadījumu šādā situācijā ir viens no šiem trim gļukiem.

Tavā gadījumā risinājums varētu būt:
a) debugot, debugot un vēlreiz debugot.
b) nelietot pointerus un fiksēta izmēra buferus. Tā vietā lietot STL bibliotēkas klases - std::string, std::vector, std::auto_ptr. Lai arī tad būs iespējams kautko sačakarēt, taču tad būs daudz mazāka iespēja to izdarīt.
c) nelietot C++, bet lietot kādu atmiņu-automātiski-menedžējošu programmēšanas valodu (skriptus). Piemēram: C#, VB.NET, Python, Ruby, lua, whatever
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Aug 21, 2007 9:18 am    Post subject:

kur atrodas tas std::vector? kuraa headeraa? es vinju atrast nevareeju, kad man vajadzeeja... EDIT: TAGAD ATRADU.. aa un jaa, vaina bija lielajos objektos, taapeec es labpraat uzzinaatu vairaak par heap'u, paskatiishos arii savos tutoriaaljos, hmm, tad jau iznaak, ka struct'a masiivs stack'aa glasbaajaas? tas struct'a masiivs visu man izjauca...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 21, 2007 11:40 am    Post subject:

<vector> headerī :)

Heapā atmiņu izdala ar new vai malloc (un citiem tā paveidiem), kā arī izmantojot STL klases - vector, map, string, list, un tml (ja izmanto defaultos allocator'us).

Par pašu heapu es pasen tepat forumā rakstīju, reku: http://dev.gamez.lv/viewtopic.php?p=10017#10017
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Aug 21, 2007 1:43 pm    Post subject:

aha, par heapu viss skaidrs...
es kautkad meeginaashu veidot pats savu terrainu sisteemu, ar kopeeshanu no tutoriaalja ir baigaas probleemas... meeginaashu arii kaadu citu tutoriaali..
bet man pashlaik cita probleema...
es ar directx9 control paneli iesleedzu directx debug modi un ieraudziiju dazhas sava kluudas... tad es taas izlaboju, bet, kad meeginaaju normaali iziet no savas progas, taa pakaraas, logu vairs neredz, tikai process palicis.. un d3d9 debug peedeejie ieraksti ir shaadi:
Direct3D9: (ERROR) :GetClientRect Failed ?
Direct3D9: (ERROR) :GetClientRect Failed ?
Direct3D9: (ERROR) :BitBlt or StretchBlt failed in Present
gan nezinu kaa tas var taa buut... agraak shiis 3 rindas bija 2x vairaak, tad es iz-break-ojos no mainloopa un dabuuju shos 3 errorus tikai vienreiz..
tikai gan nezinu kaadaa sakaraa...
un kad izmainu loga lielumu, tad raada Reset failed un debugs saka, ka man ->release(); visi stateblock'i, kautgan man taadu nav... man tikai sava store/restore sisteema, kura straadaa...

un debugojot hWnd vienmeer staav uz kaadas diivainas mazas adreses, vinju raada kaa "unused/0" un ja pie watch'iem ieliek, tad raada:
Error: symbol "hWnd" not found
kaadaa veidaa iespeejams tas, ka logs neeksistee, bet es vinju redzu?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 21, 2007 5:57 pm    Post subject:

Debugeris dažreiz gļuko un nevar atrast kautko (tavu hWnd). hWnd "ne-esamība" nenozīmē loga "redzamību".
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Aug 21, 2007 7:01 pm    Post subject:

bet kaapeec, tad, kad es izeju, Present nezkapeec neizsleedzas un domaa, ka es veel kautko gribu ziimeet? un reset vairs nestraadaa... tam visam jaatrod probleemas sakne...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 21, 2007 8:36 pm    Post subject:

Nezinu un nemāku D3D, bet minēšu - tu nepareizi lieto D3D API.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group