CrAzY hOuSe
Locos por la programación
Cómo mostrar un error de forma detallada al llamar a un API.
.net

Syndication

La mayor parte de las APIs de 32 bits retornan información detallada sobre el error producido en caso de fallo. Para obtener esta información en un formato adecuado y útil, se pueden utilizar las funciones de la API GetLastError y FormatMessage.

Cuando quieras comprobar el error que ha producido una función API usa lo siguiente:

MsgBox InformacionError

Aquí tienes el código de La función InfErrorAPI:

Option Explicit
Public Declare Function GetLastError Lib "kernel32" () As Long
Public Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, _
   ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Public Function InfErrorAPI() As String
    Dim sError As String * 500
    Dim lErrNum As Long, lErrMsg As Long
    
    ' Obtenemos el Código del último error producido
    lErrNum = GetLastError
    ' Obtenemos el texto aclaratorio del error
    lErrMsg = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, lErrNum, 0, sError, Len(sError), 0)
    InfErrorAPI = Format(lErrNum) & ": " & Trim(sError)
End Function

Posted jue, ene 4 2001 22:31 by Maverick
Filed under: ,

Add a Comment

(optional)  
(optional)
(required)  
Remember Me?
MavericK
Powered by Community Server (Non-Commercial Edition), by Telligent Systems