Hallo zusammen, ich benutze die Firmware von Microchip (MP Custom Driver) für meinen PIC und die dll mpusbapi.dll für meine GUI. Der Quellcode zeigt das error-handling. void CheckInvalidHandle(void) { if(GetLastError() == ERROR_INVALID_HANDLE) { // Most likely cause of the error is the board was disconnected. MPUSBClose(myOutPipe); MPUSBClose(myInPipe); myOutPipe = myInPipe = INVALID_HANDLE_VALUE; }//end if else printf("Error Code \r\n",GetLastError()); }//end CheckInvalidHandle Dies vorab. Meine Fragen nun: Wo bekomme ich eine Übersicht der Fehlercodes mit Erklärung her? Also, was für Fehlercodes liefert mir die Funktion zurück? Ist das eigendlich abhängig von der jeweiligen Firmware und der zugehörigen DLL? Denke nicht, oder doch? lg, blitzgeist
...hat niemand was zu diesem Thema zu sagen? lg, blitzgeist
Fehlercodes sowie deren Definition findest Du unter msdn.microsoft.com
Fehlercodes und deren beschreibung erhältst Du durch API aufrufe. In VB sehen sie so aus:
1 | Public Declare Function GetLastError Lib "kernel32.dll" () As Long |
2 | Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" _ |
3 | (ByVal dwFlags As Long, _ |
4 | ByRef lpSource As Any, _ |
5 | ByVal dwMessageId As Long, _ |
6 | ByVal dwLanguageId As Long, _ |
7 | ByVal dwBuffer As String, _ |
8 | ByVal nSize As Long, _ |
9 | ByVal Arguments As Long) _ |
10 | As Long |
11 | Private Function GetErrorString(lasterror As Long) As String |
12 | Dim bytes As Long |
13 | Dim errorstring As String |
14 | errorstring = String$(129, 0) |
15 | bytes = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, lasterror, 0, errorstring$, 128, 0) |
16 | GetErrorString = errorstring |
17 | End Function |
18 | |
19 | Public Sub MsgError(intern_reference As String, lasterror As Long, mode As String) |
20 | Dim string_of_error As String |
21 | string_of_error = GetErrorString(lasterror) |
22 | If lasterror > 0 Then |
23 | If Not mode = "silent" Then |
24 | MsgBox ("Interne Referenz: " + intern_reference + Chr(10) + Str(lasterror) + Chr(10) + string_of_error) |
25 | End If |
26 | End If |
27 | End Sub |
Der aufruf sähe beispielsweise so aus:
1 | Call MsgError("Mitten im Code", GetLastError(), "") |
GetLastError - holt die fehlernummer FormatMessage - erzeugt den dazugehörigen text GetErrorString - bereitet den string auf MsgError - mach das ganze programmaufruftauglich GetLastError() - sollte so nah wie möglich an den funktionen aufgerufen werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.