In C und C++ wird eine HRESULT-Variable bei jedem Methoden Aufruf gesetzt. Mit diesem HRESULT kann das Programm entscheiden, ob es die Rückgabewerte einer Methode verarbeitet oder ignoriert.

In Visual Basic ist das nicht so einfach. Verursacht eine Methode einen Fehler, dann wird meist die Prozedur oder gar das ganze Programm beendet. Daher sollte man eine Fehlerbehandlung programmieren, damit das Programm nicht gleich beendet wird.

Die Fehlernummer wird in Visual Basic im globalen Err-Objekt gesetzt. Fast alle der möglichen Fehler für jede DirectX Methode sind in der Dokumentation von DirectX aufgelistet, und die Fehlernummern sind sogar als Konstanten in DirectX vordefiniert. Man muss sie nur abfangen.

Im Beispiel ist gObjDPlay ein DirectPlay4-Objekt. Läuft der Aufruf von DirectPlay4.CreatePlayer fehl, dann geht die Ausführung des Codes bei FAILEDCREATEPLAYER weiter.

Function GetPlayerID(PlayerName As String, _
  PlayerHandle As String) As Long

On Error GoTo
FAILEDCREATEPLAYER
GetPlayerID = gObjDPlay.CreatePlayer(PlayerName, _
     PlayerHandle, 0, 0)
On Error GoTo 0

  'Code in diesem Bereich wird ausgeführt,
  'wenn CreatePlayer erfolgreich war.
.
.
.
Exit Function

FAILEDCREATEPLAYER:

If
Err.Number = DPERR_INVALIDPLAYER Then
  MsgBox ("Kein gültiger Spieler.")
Else
  MsgBox("Undefinierbarer Fehler beim Erstellen der Spieler.")
End If
GetPlayerID = 0
End Function

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX-Forum | VB.Net | .Net-Forum | Foren-Archiv | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report

Letzte Aktualisierung, Montag, 28. Oktober 2002