Brauche dringend den Grund, warum eine bestimmte API-Sache nicht funktioniert.
Wie wendet man das konkret an?
Wie wendet man GetLastError richtig an?
Also ich habe jetzt das hier gefunden:
Allerdings beschwert er sich über "MemoryID()"... fehlt wohl bei mir eine Lib?
Code: Alles auswählen
Procedure.s ShowError ()
error = GetLastError_ ()
If error
length = FormatMessage_ (#FORMAT_MESSAGE_FROM_SYSTEM, #NULL, error, 0, AllocateMemory (255), 255, #NULL)
If length > 1 ; Some error messages are "" + Chr (13) + Chr (10)... stoopid M$... :(
e$ = PeekS (MemoryID (), length - 2)
Else
e$ = "Unknown error!"
EndIf
FreeMemory (0)
ProcedureReturn e$
Else
ProcedureReturn "No error has occurred!"
EndIf
EndProcedure
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
MemoryID() wurde mit der Änderung des AllocateMemory() Befehls in PB v3.90 abgeschafft.Gamer hat geschrieben: Allerdings beschwert er sich über "MemoryID()"... fehlt wohl bei mir eine Lib?
Das Beispiel müsste m.E. korrekt so aussehen (ohne Gewähr

Code: Alles auswählen
Procedure.s ShowError ()
error = GetLastError_ ()
If error
*MemoryID = AllocateMemory (255)
length = FormatMessage_ (#FORMAT_MESSAGE_FROM_SYSTEM, #NULL, error, 0, *MemoryID, 255, #NULL)
If length > 1 ; Some error messages are "" + Chr (13) + Chr (10)... stoopid M$... :(
e$ = PeekS (*MemoryID, length - 2)
Else
e$ = "Unknown error!"
EndIf
FreeMemory (0)
ProcedureReturn e$
Else
ProcedureReturn "No error has occurred!"
EndIf
EndProcedure
Debug ShowError()
Hehe,
"ohne Gewähr" - hört sich fast so an als wenn du wusstest das da das FreeMemory falsch ist
"ohne Gewähr" - hört sich fast so an als wenn du wusstest das da das FreeMemory falsch ist

Code: Alles auswählen
Procedure.s ShowError()
Protected Error,*MemoryID,e$,Length
Error = getlasterror_()
If Error
*MemoryID = AllocateMemory(255)
If *MemoryID
Length = FormatMessage_ (#FORMAT_MESSAGE_FROM_SYSTEM, #Null, Error, 0, *MemoryID, 255, #Null)
If Length > 1 ; Some error messages are "" + Chr (13) + Chr (10)... stoopid M$... :(
e$ = PeekS(*MemoryID, Length - 2)
Else
e$ = "Unknown error!"
EndIf
FreeMemory(*MemoryID)
ProcedureReturn e$
Else
ProcedureReturn "Error while decoding Error("+Str(Error)+")"
EndIf
Else
ProcedureReturn "No error has occurred!"
EndIf
EndProcedure
Debug ShowError()

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]