This has started to occur regularly for some reason...
Log Name: Application
Source: Application Error
Date: 05/09/2010 21:39:30
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: RightComputer
Description:
Faulting application name: gpc.exe, version: 0.0.0.0, time stamp: 0x4c6e4b4b
Faulting module name: gpc.exe, version: 0.0.0.0, time stamp: 0x4c6e4b4b
Exception code: 0xc0000005
Fault offset: 0x00024582
Faulting process id: 0x434
Faulting application start time: 0x01cb4d3a6f29679d
Faulting application path: C:\Program Files (x86)\GLBasic\Compiler\platform\gpc.exe
Faulting module path: C:\Program Files (x86)\GLBasic\Compiler\platform\gpc.exe
At the moment, I dont know what exactly causes it at the moment, but it looks like its caused by trying to call a function in a type that isn't present :
arcade.UpdateProfile(setup,currentRound%)
And the actual function is commented out :
// FUNCTION UpdateProfile%:setup AS TSetup,currentRound%
// self.profiles[self.selectedLine%].level%=currentRound%
// self.saveProfiles(setup)
// ENDFUNCTION
However, even with the function un-commented, GPC still crashes.
I had thought that clearing %TEMP% would help, but unfortunately it doesn't - nor does toggling debug mode.
It also re-occurs when GLBasic is closed and reloaded... Later on I'll try it after re-setting the computer...
No, a reset doesn't fix it...
I know this is a really old topic but I thought posting it here would be better than starting a new thread. So this error is now happening to me, was there ever a fix(es)? My code really isn't similar either. Any help would be appreciated.
Yes I am using 10.106, I tested the program on my vista laptop, and it seems to run fine. I can't reproduce it at all. And I also tried to google error code: 0xc0000005, it said I may have a faulty memory stick. So I swapped em' both twice each, and no success. I am pretty sure my code is fine if it is working on my laptop, any other ideas? Also I'm running XP Pro SP3 on my PC.
Delete everything in %TEMP% to start with
Still no luck, I've been spending all morning going through a copy of the project file and trying to modify it to work, but I think I am going to rewrite it based off the old source to see if I don't see it then. Also a google search said it might be a problem with an array, so thats what inspired my work this morning. Further testing in debug just says access violation?
Can you post some sample code here ? I found after the 2010 update, it all worked okay...
Its hard for me to do a sample, but its not that big of a program. This loads a map file created by another program i wrote and is a very basic (Drawing,Collision, and Movement) 2d rpg engine. I know its alot to look over but if you see anything please let me know, I'm going to continue trying to find the bug and may reinstall windows tonight.
//Gui Startup
TYPE GuiType
Width
Height
Mode
FpsLimit
ENDTYPE
GLOBAL Gui AS GuiType
Gui.Width=320
Gui.Height=240
Gui.Mode=0
Gui.FpsLimit=60
SETSCREEN Gui.Width,Gui.Height,Gui.Mode
LIMITFPS Gui.FpsLimit
SYSTEMPOINTER TRUE
//Tilemap Startup
TYPE TilemapType
Image
ImageData[]
Name$
X
Y
XOffset
YOffset
Length
TileWidth
TileHeight
TileWidthMax
TileHeightMax
TilesetTileWidth
TilesetTileHeight
CurrentTile
FrameDelay
ExitFlag
DotFlag
ENDTYPE
GLOBAL Tilemap AS TilemapType
Tilemap.Image=1
Tilemap.Name$=""
Tilemap.X=0
Tilemap.Y=0
Tilemap.TileWidthMax=21
Tilemap.TileHeightMax=16
//Tile Startup
TYPE TileType
Frame
SelectionFlag
DotFlag
CollisionFlag
ExitFlagA
ExitFlagB
AnimatedFlag
AnimatedFrames
FrameOffset
FrameJump
FrameCounter
FrameCounterB
FrameXIncrement
FrameYIncrement
ENDTYPE
GLOBAL TilemapTile[] AS TileType
//Player Startup
TYPE PlayerType
Image
Frame
FrameMin
FrameMax
FrameDelay
FrameFlag
Guide
X
Y
Speed
UpFlagA
RightFlagA
DownFlagA
LeftFlagA
UpFlagB
RightFlagB
DownFlagB
LeftFlagB
ENDTYPE
GLOBAL Player AS PlayerType
Player.Image=20
LOADANIM "PlayerImage.bmp",Player.Image,32,32
Player.Guide=21
LOADANIM "PlayerGuide.bmp",Player.Guide,16,8
Player.X=152
Player.Y=116
Player.Speed=2
LoadMap("test",0,0)
Main:
CLEARSCREEN
Update()
SHOWSCREEN
GOTO Main
//Load Map
FUNCTION LoadMap:File$,X,Y
LOCAL A,B,C,D,E
Tilemap.Name$=File$
Tilemap.X=X
Tilemap.Y=Y
Tilemap.XOffset=0
Tilemap.YOffset=0
File$=File$+".tmd"
File$=REPLACE$(File$,".tmd.tmd",".tmd")
SETCURRENTDIR("Tilemap")
OPENFILE(1,File$,TRUE)
READSHORTIEEE 1,Tilemap.TileWidth
READSHORTIEEE 1,Tilemap.TileHeight
DIM TilemapTile[5][Tilemap.TileWidth][Tilemap.TileHeight]
FOR C=0 TO 4
FOR A=0 TO Tilemap.TileWidth-1
FOR B=0 TO Tilemap.TileHeight-1
READSHORTIEEE 1,TilemapTile[C][A][B].Frame
READSHORTIEEE 1,TilemapTile[C][A][B].DotFlag
READSHORTIEEE 1,TilemapTile[C][A][B].CollisionFlag
READSHORTIEEE 1,TilemapTile[C][A][B].ExitFlagA
READSHORTIEEE 1,TilemapTile[C][A][B].ExitFlagB
READSHORTIEEE 1,TilemapTile[C][A][B].AnimatedFlag
READSHORTIEEE 1,TilemapTile[C][A][B].AnimatedFrames
READSHORTIEEE 1,TilemapTile[C][A][B].FrameJump
READSHORTIEEE 1,TilemapTile[C][A][B].FrameXIncrement
READSHORTIEEE 1,TilemapTile[C][A][B].FrameYIncrement
NEXT
NEXT
NEXT
READSHORTIEEE 1,D
READSHORTIEEE 1,E
READSHORTIEEE 1,Tilemap.Length
REDIM Tilemap.ImageData[Tilemap.Length]
Tilemap.TilesetTileWidth=(D/16)
Tilemap.TilesetTileHeight=(E/16)
C=-1
FOR A=0 TO (D-1)
FOR B=0 TO (E-1)
C=C+1
READSHORTIEEE 1,Tilemap.ImageData[C]
NEXT
NEXT
CLOSEFILE 1
CLEARSCREEN
SETTRANSPARENCY RGB(0,255,0)
C=-1
FOR A=0 TO (D-1)
FOR B=0 TO (E-1)
C=C+1
SETPIXEL A,B,Tilemap.ImageData[C]
NEXT
NEXT
GRABSPRITE Tilemap.Image,0,0,D,E
SAVESPRITE "Temp.bmp",Tilemap.Image
SETTRANSPARENCY RGB(255,0,128)
CLEARSCREEN
LOADANIM "Temp.bmp",Tilemap.Image,16,16
KILLFILE "Temp.bmp"
File$=REPLACE$(File$,".tmd","")
SETCURRENTDIR("..")
ENDFUNCTION
//Exits
FUNCTION Exit:MapA$,MapB$,ExitFlag,PlayerFrame,X,Y
IF Tilemap.Name$=MapA$
IF Tilemap.ExitFlag=ExitFlag
LoadMap(MapB$,X,Y)
Player.Frame=PlayerFrame
Tilemap.ExitFlag=999
ENDIF
ENDIF
ENDFUNCTION
//Update
FUNCTION Update:
LOCAL A,B,C,D,E,F,G,H,TilemapYA,TilemapYB,TilemapXA,TilemapXB
Tilemap.FrameDelay=Tilemap.FrameDelay+1
Player.FrameDelay=Player.FrameDelay+1
//Player Frame Update
IF Player.FrameDelay>=10
Player.Frame=Player.Frame+1
ENDIF
//Player Movement
IF KEY(200)
IF Player.UpFlagA=1
Tilemap.Y=Tilemap.Y+Player.Speed
Player.UpFlagB=1
IF Player.FrameFlag=1
Player.FrameMin=0
Player.FrameMax=3
Player.FrameFlag=0
ENDIF
ENDIF
ELSE
Player.UpFlagB=0
ENDIF
IF KEY(208)
IF Player.DownFlagA=1
Tilemap.Y=Tilemap.Y-Player.Speed
Player.DownFlagB=1
IF Player.FrameFlag=1
Player.FrameMin=4
Player.FrameMax=7
Player.FrameFlag=0
ENDIF
ENDIF
ELSE
Player.DownFlagB=0
ENDIF
IF KEY(203)
IF Player.LeftFlagA=1
Tilemap.X=Tilemap.X+Player.Speed
Player.LeftFlagB=1
IF Player.FrameFlag=1
Player.FrameMin=8
Player.FrameMax=11
Player.FrameFlag=0
ENDIF
ENDIF
ELSE
Player.LeftFlagB=0
ENDIF
IF KEY(205)
IF Player.RightFlagA=1
Tilemap.X=Tilemap.X-Player.Speed
Player.RightFlagB=1
IF Player.FrameFlag=1
Player.FrameMin=12
Player.FrameMax=15
Player.FrameFlag=0
ENDIF
ENDIF
ELSE
Player.RightFlagB=0
ENDIF
IF Player.UpFlagB=0 AND Player.LeftFlagB=0 AND Player.RightFlagB=0 AND Player.DownFlagB=0
Player.Frame=Player.FrameMin
ENDIF
IF Player.FrameMin=0 AND Player.UpFlagB=0
Player.FrameFlag=1
ELSEIF Player.FrameMin=4 AND Player.DownFlagB=0
Player.FrameFlag=1
ELSEIF Player.FrameMin=8 AND Player.LeftFlagB=0
Player.FrameFlag=1
ELSEIF Player.FrameMin=12 AND Player.RightFlagB=0
Player.FrameFlag=1
ENDIF
//Player Frame Check
IF Player.Frame>Player.FrameMax
Player.Frame=Player.FrameMin
ELSEIF Player.Frame<Player.FrameMin
Player.Frame=Player.FrameMin
ENDIF
//Set Tiles To Be Drawn
IF Tilemap.X<=-32
IF Tilemap.XOffset<(Tilemap.TileWidth-Tilemap.TileWidthMax-1)
Tilemap.X=Tilemap.X+16
Tilemap.XOffset=Tilemap.XOffset+1
ENDIF
ENDIF
IF Tilemap.X>=0
IF Tilemap.XOffset>0
Tilemap.X=Tilemap.X-16
Tilemap.XOffset=Tilemap.XOffset-1
ENDIF
ENDIF
IF Tilemap.Y<=-32
IF Tilemap.YOffset<(Tilemap.TileHeight-Tilemap.TileHeightMax-1)
Tilemap.Y=Tilemap.Y+16
Tilemap.YOffset=Tilemap.YOffset+1
ENDIF
ENDIF
IF Tilemap.Y>=0
IF Tilemap.YOffset>0
Tilemap.Y=Tilemap.Y-16
Tilemap.YOffset=Tilemap.YOffset-1
ENDIF
ENDIF
//Fix Size
IF Tilemap.TileWidth<=Tilemap.TileWidthMax
D=(Tilemap.TileWidth-1)
ELSEIF Tilemap.TileWidth>Tilemap.TileWidthMax
D=Tilemap.TileWidthMax
ENDIF
IF Tilemap.TileHeight<=Tilemap.TileHeightMax
E=(Tilemap.TileHeight-1)
ELSEIF Tilemap.TileHeight>Tilemap.TileHeightMax
E=Tilemap.TileHeightMax
ENDIF
Tilemap.DotFlag=0
//Tilemap Collision/Draw/Frame Update
FOR A=0 TO 4
G=0
FOR B=Tilemap.XOffset TO (D+Tilemap.XOffset)
H=0
FOR C=Tilemap.YOffset TO (E+Tilemap.YOffset)
IF TilemapTile[A][B][C].CollisionFlag=1
FOR F=0 TO Player.Speed
IF ANIMCOLL(Player.Guide,0,Player.X,(Player.Y-F),Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16)))
TilemapYA=(F-Player.Speed)
Player.UpFlagA=0
BREAK
ELSE
Player.UpFlagA=1
ENDIF
NEXT
FOR F=0 TO Player.Speed
IF ANIMCOLL(Player.Guide,1,Player.X,(Player.Y+F),Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16)))
TilemapYB=(F-Player.Speed)
Player.DownFlagA=0
BREAK
ELSE
Player.DownFlagA=1
ENDIF
NEXT
FOR F=0 TO Player.Speed
IF ANIMCOLL(Player.Guide,2,(Player.X-F),Player.Y,Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16)))
TilemapXA=(F-Player.Speed)
Player.LeftFlagA=0
BREAK
ELSE
Player.LeftFlagA=1
ENDIF
NEXT
FOR F=0 TO Player.Speed
IF ANIMCOLL(Player.Guide,3,(Player.X+F),Player.Y,Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16)))
TilemapXB=(F-Player.Speed)
Player.RightFlagA=0
BREAK
ELSE
Player.RightFlagA=1
ENDIF
NEXT
ENDIF
IF TilemapTile[A][B][C].DotFlag=1
IF ANIMCOLL(Player.Guide,4,Player.X,Player.Y,Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16)))
Tilemap.DotFlag=1
ENDIF
ENDIF
IF TilemapTile[A][B][C].AnimatedFlag=1
DRAWANIM Tilemap.Image,(TilemapTile[A][B][C].Frame+TilemapTile[A][B][C].FrameCounter+TilemapTile[A][B][C].FrameOffset),(Tilemap.X+(G*16)),(Tilemap.Y+(H*16))
ELSEIF TilemapTile[A][B][C].AnimatedFlag=0
DRAWANIM Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16))
ENDIF
H=H+1
NEXT
G=G+1
NEXT
NEXT
DRAWANIM Player.Guide,0,Player.X,Player.Y
DRAWANIM Player.Guide,1,Player.X,Player.Y
DRAWANIM Player.Guide,2,Player.X,Player.Y
DRAWANIM Player.Guide,3,Player.X,Player.Y
DRAWANIM Player.Image,Player.Frame,(Player.X-8),(Player.Y-26)
FOR A=0 TO 4
G=0
FOR B=Tilemap.XOffset TO (D+Tilemap.XOffset)
H=0
FOR C=Tilemap.YOffset TO (E+Tilemap.YOffset)
IF Tilemap.DotFlag=1
IF TilemapTile[A][B][C].DotFlag=1
IF TilemapTile[A][B][C].AnimatedFlag=1
DRAWANIM Tilemap.Image,(TilemapTile[A][B][C].Frame+TilemapTile[A][B][C].FrameCounter+TilemapTile[A][B][C].FrameOffset),(Tilemap.X+(G*16)),(Tilemap.Y+(H*16))
ELSEIF TilemapTile[A][B][C].AnimatedFlag=0
DRAWANIM Tilemap.Image,TilemapTile[A][B][C].Frame,(Tilemap.X+(G*16)),(Tilemap.Y+(H*16))
ENDIF
ENDIF
ENDIF
IF Tilemap.FrameDelay>=10
TilemapTile[A][B][C].FrameCounter=TilemapTile[A][B][C].FrameCounter+TilemapTile[A][B][C].FrameXIncrement
IF TilemapTile[A][B][C].FrameCounter>(Tilemap.TilesetTileWidth-(TilemapTile[A][B][C].FrameJump+1))+((TilemapTile[A][B][C].FrameCounterB*Tilemap.TilesetTileWidth))
TilemapTile[A][B][C].FrameOffset=TilemapTile[A][B][C].FrameOffset+(Tilemap.TilesetTileWidth*(TilemapTile[A][B][C].FrameYIncrement-1))
TilemapTile[A][B][C].FrameCounterB=TilemapTile[A][B][C].FrameCounterB+1
ENDIF
IF TilemapTile[A][B][C].FrameCounter>=TilemapTile[A][B][C].AnimatedFrames*TilemapTile[A][B][C].FrameXIncrement
TilemapTile[A][B][C].FrameCounter=0
TilemapTile[A][B][C].FrameCounterB=0
TilemapTile[A][B][C].FrameOffset=0
ENDIF
ENDIF
H=H+1
NEXT
G=G+1
NEXT
NEXT
IF Player.FrameDelay>=10 THEN Player.FrameDelay=0
IF Tilemap.FrameDelay>=10 THEN Tilemap.FrameDelay=0
Tilemap.Y=(Tilemap.Y+TilemapYA)
Tilemap.Y=(Tilemap.Y-TilemapYB)
Tilemap.X=(Tilemap.X+TilemapXA)
Tilemap.X=(Tilemap.X-TilemapXB)
ENDFUNCTION