DirectX error

cfehunter
11-28-2006, 03:45 AM
Hi
this is my first attempt at using directX.

here's my code so far

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dx As New DirectX7
Dim dd As DirectDraw7

dd = dx.DirectDrawCreate("")
Call dd.SetCooperativeLevel(Me.Handle, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE Or DDSCL_ALLOWREBOOT)
Call dd.SetDisplayMode(640, 480, 16, 0, DDSDM_DEFAULT)
Dim Primary As DirectDrawSurface7 'Primary surface
Dim BackBuffer As DirectDrawSurface7 'Backbuffer surface
Dim ddsdPrimary As DDSURFACEDESC2 'Primary surface description
Dim caps As DDSCAPS2 'Capabilities description

ddsdPrimary.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsdPrimary.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsdPrimary.lBackBufferCount = 1
Primary = dd.CreateSurface(ddsdPrimary)
caps.lCaps = DDSCAPS_BACKBUFFER
BackBuffer = Primary.GetAttachedSurface(caps)

Dim Hero As DirectDrawSurface7
Dim ddsdNewSprite As DDSURFACEDESC2

ddsdNewSprite.lFlags = DDSD_CAPS Or DDSD_WIDTH Or DDSD_HEIGHT
ddsdNewSprite.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
ddsdNewSprite.lWidth = 16
ddsdNewSprite.lHeight = 16
Hero = dd.CreateSurfaceFromFile("HeroLeftMove.gif", ddsdNewSprite)

Dim SrcRect As RECT
Dim DestRect As RECT

With SrcRect
.Bottom = 16
.Left = 0
.Right = 16
.Top = 0
End With

With DestRect
.Bottom = 16
.Left = 0
.Right = 16
.Top = 0
End With

BackBuffer.Blt(DestRect, Hero, SrcRect, DDBLT_WAIT)
Primary.Flip(Nothing, DDFLIP_WAIT)
End Sub
End Class


The File called "HeroLeftMove.gif" is in the same folder as the exe file, but i still get a file not found error with this code, can anybody help me please?

beefmonky
11-28-2006, 05:29 PM
try:


Application.StartupPath & "\" & HeroLeftMove.gif


Hi
this is my first attempt at using directX.

here's my code so far

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dx As New DirectX7
Dim dd As DirectDraw7

dd = dx.DirectDrawCreate("")
Call dd.SetCooperativeLevel(Me.Handle, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE Or DDSCL_ALLOWREBOOT)
Call dd.SetDisplayMode(640, 480, 16, 0, DDSDM_DEFAULT)
Dim Primary As DirectDrawSurface7 'Primary surface
Dim BackBuffer As DirectDrawSurface7 'Backbuffer surface
Dim ddsdPrimary As DDSURFACEDESC2 'Primary surface description
Dim caps As DDSCAPS2 'Capabilities description

ddsdPrimary.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsdPrimary.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsdPrimary.lBackBufferCount = 1
Primary = dd.CreateSurface(ddsdPrimary)
caps.lCaps = DDSCAPS_BACKBUFFER
BackBuffer = Primary.GetAttachedSurface(caps)

Dim Hero As DirectDrawSurface7
Dim ddsdNewSprite As DDSURFACEDESC2

ddsdNewSprite.lFlags = DDSD_CAPS Or DDSD_WIDTH Or DDSD_HEIGHT
ddsdNewSprite.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
ddsdNewSprite.lWidth = 16
ddsdNewSprite.lHeight = 16
Hero = dd.CreateSurfaceFromFile("HeroLeftMove.gif", ddsdNewSprite)

Dim SrcRect As RECT
Dim DestRect As RECT

With SrcRect
.Bottom = 16
.Left = 0
.Right = 16
.Top = 0
End With

With DestRect
.Bottom = 16
.Left = 0
.Right = 16
.Top = 0
End With

BackBuffer.Blt(DestRect, Hero, SrcRect, DDBLT_WAIT)
Primary.Flip(Nothing, DDFLIP_WAIT)
End Sub
End Class


The File called "HeroLeftMove.gif" is in the same folder as the exe file, but i still get a file not found error with this code, can anybody help me please?

EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum