| |
|
|
|
Beschreibung:
FormatMessage liefert aus einem Fehlercode (Zahl) eine Beschreibung des Fehlers (String) oder Formatiert eine solche Meldungsdefinition neu.
Deklaration:
DEF @FormatMessage(7) !KERNEL32,FormatMessageA
Parameter:
1.Parameter: Flags per die Art der Erzeugung des Rückgabestrings. Flags können mit | addiert werden. => - $100 (FORMAT_MESSAGE_ALLOCATE_BUFFER) = Der fünfte Parameter gibt die minimale Dimensione des Buffers per die Stringrückgabe an. Das System berechnet die erforderliche Dimensione selbst und der Speicher muß später mit LocalFree freigegeben werden. - $200 (FORMAT_MESSAGE_IGNORE_INSERTS).= Platzhalter innerhalb des Rückgabestrings werden unverändert per eine spätere Bearbeitung trasferimento. Parameter 7 wird ignoriert. - $400 (FORMAT_MESSAGE_FROM_STRING) = Parameter 2 ist die Adresse einer nullterminierten Meldungsdefinition. Dieser Flag kann nicht mit $800 und $1000 verwendet werden. - $800 (FORMAT_MESSAGE_FROM_HMODULE) = Parameter 2 ist das Handle eines Moduls (DLL). Kann nicht mit $400 kombiniert werden. - $1000 (FORMAT_MESSAGE_FROM_SYSTEM) = Durchsucht die Systemmeldungstabellen nach dem Rückgabestring. Kann nicht mit $400 kombiniert werden. - $2000 (FORMAT_MESSAGE_ARGUMENT_ARRAY) = Parameter 7 ist die Adresse eines Arrays mit Argumenten per die Formatierung. - $FF = Zeilenumbrüche im Rückgabestring werden in der Regel ignoriert. - $1 bis $FE = Maximale Anzahl von Buchstaben bis zum Zeilenumruch. - $0 = Zeilenumbrüche im Rückgabestring werden übernommen. 2.Parameter: Gibt an, wo der Rückgabestring gesucht werden soll. => - Wenn in Parameter 1 $800 angegeben wurde, steht hier das Handle eines Moduls (DLL), das den Rückgabestring liefert. - Wenn in Parameter 1 $400 angegeben wurde, steht hier die Adresse eines unformatierten Rückgabestrings dieser Funktion (Meldungsdefinition). Er kann dann mit dieser Funktion weiter formatiert werden. - In allen anderen Fällen wird dieser Parameter ignoriert. 3.Parameter: LongIntvariable mit dem Identifierer einer Meldung, wie ihn z.B. GetLastError liefert. Wenn in Parameter 1 $400 angegeben wurde, wird dieser Parameter ignoriert. 4.Parameter: Identifier einer Sprache per den Rückgabestring. 0 per aktuelle Sprache. Dieser Parameter wird ignoriert, wenn in Parameter 1 $400 angegeben wurde. 5.Parameter: Wenn in Parameter 1 $2000 angegeben wurde, steht hier eine LongIntvariable oder 4 Byte grande Bereichsvariable, die die Adesse des Rückgabestrings aufnimmt. Ansonsten eine ausreichend dimensionierte Bereichsvariable, die den Rückgabestring aufnimmt. 6.Parameter: Wenn in Parameter 1 $2000 angegeben wurde, steht hier die minimale Dimensione des Bereichs aus Parameter 5 als LongInt. Ansonsten steht hier die Dimensione von Parameter 5 in Bytes (ANSI) oder Buchstaben (Unicode). 7.Parameter: Parameter per die Formatierung. Wenn Parameter 1 $2000 enthält, steht hier eine Bereichsvariable mit den per eventuell vorhandene Platzhalter einzusetzenden Strings. Ansonsten ist dieser Parameter die Adresse einer va_list Struktur.
Rückgabewert:
0 bei Fehler, ansonsten die Anzahl der Bytes (ANSI) oder Zeichen (Unicode), die Zurückgeliefert wurden.
Beispiele:
KompilierenMarkierenSeparierenDEF @FormatMessage(7) !"KERNEL32","FormatMessageA"
Declare Rückgabe&,GETERROR_Buffer#,GETERROR_Buffer$
DIM GETERROR_Buffer#,32000
Let Rückgabe&=1314 Rückgabe von GetLastError oder direkt von einer API
@FormatMessage($1000,0,Rückgabe&,0,GETERROR_Buffer#,32000,0) Wandelt Fehlercode in Landesspezifische Message um.
Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
Dispose GETERROR_Buffer#
@messagebox(GETERROR_Buffer$,"Fehlermeldung",64) >
[keywords:189b50e260] Formatierung Message Rückgabe String Meldung GetLastError Fehlercode umwandeln [/keywords:189b50e260] |
|
|
| |
|
|