2011-11-18 2 views
2

У меня есть приложение XNA, которое при запуске на определенном ноутбуке (dell, Win 7 64bit) сработает.
Иногда он падает через несколько минут, иногда это занимает много часов, но в итоге оно всегда падает.
Приложение написано в XNA4.0 VS2010
мне пришлось добавить событие в AppDomain.CurrentDomain.UnhandledException только поймать это исключение,
здесь трассировки стека:XNA graphicsdevice.present crashes on "value не входит в ожидаемый диапазон"

System.ArgumentException: Value does not fall within the expected range. 
    at Microsoft.Xna.Framework.Graphics.GraphicsDevice.Present(tagRECT* pSource, tagRECT* pDest, HWND__* hOverride) 
    at Microsoft.Xna.Framework.GraphicsDeviceManager.Microsoft.Xna.Framework.IGraphicsDeviceManager.EndDraw() 
    at Microsoft.Xna.Framework.Game.EndDraw() 
    at Microsoft.Xna.Framework.Game.DrawFrame() 
    at Microsoft.Xna.Framework.Game.Tick() 
    at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e) 
    at Microsoft.Xna.Framework.GameHost.OnIdle() 
    at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame() 
    at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e) 
    at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef) 
    at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
    at System.Windows.Forms.Application.Run(Form mainForm) 
    at Microsoft.Xna.Framework.WindowsGameHost.Run() 
    at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun) 
    at Moof.Moof.Run() 
    at Moof.Program.Main(String[] args) 

Любые идеи?
Спасибо.

+0

Я думаю, что это происходит, что видеоустройство недействителен. Если это так, оно появится в режиме отладки DirectX - вы можете найти информацию о том, как это сделать здесь: http://blogs.msdn.com/b/shawnhar/archive/2007/01/31/debugging -xna-graphics-problems.aspx – Dracorat

ответ

Смежные вопросы