Changed FormatMessage alien-invoke to last_error() alien-invoke in native/misc.c

cvs
Doug Coleman 2005-10-05 04:12:38 +00:00
parent 443acc846a
commit 6de799c230
1 changed files with 1 additions and 10 deletions

View File

@ -63,17 +63,8 @@ CONSTANT: WAIT_TIMEOUT 258 ;
: GetLastError ( -- int ) : GetLastError ( -- int )
"int" "kernel32" "GetLastError" [ ] alien-invoke ; "int" "kernel32" "GetLastError" [ ] alien-invoke ;
: FormatMessage ( flags source messageid langid buf size args -- int )
"int" "kernel32" "FormatMessageA"
[ "int" "void*" "int" "int" "void*" "int" "void*" ]
alien-invoke ;
: win32-error-message ( id -- string ) : win32-error-message ( id -- string )
4096 <buffer> dup >r >r >r "char*" f "last_error" [ ] alien-invoke ;
FORMAT_MESSAGE_FROM_SYSTEM f r>
LANG_NEUTRAL SUBLANG_DEFAULT MAKELANGID r> buffer-ptr <alien> 4096 f
FormatMessage r> 2dup buffer-reset nip dup buffer-contents
swap buffer-free ;
: win32-throw-error ( -- ) : win32-throw-error ( -- )
GetLastError win32-error-message throw ; GetLastError win32-error-message throw ;