Changeset 9824


Ignore:
Timestamp:
Jun 22, 2008, 10:49:52 PM (11 years ago)
Author:
gb
Message:

Add %WINDOWS-ERROR-STRING.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/win64/level-1/linux-files.lisp

    r9815 r9824  
    763763      (format nil "OS Error %d" errno)
    764764      (%get-cstring p))))
     765
     766#+windows-target
     767(defun %windows-error-string (error-number) 
     768  (rlet ((pbuffer :address +null-ptr+))
     769    (if (eql 0
     770             (#_FormatMessageW (logior #$FORMAT_MESSAGE_ALLOCATE_BUFFER
     771                                       #$FORMAT_MESSAGE_FROM_SYSTEM
     772                                       #$FORMAT_MESSAGE_IGNORE_INSERTS
     773                                       #$FORMAT_MESSAGE_MAX_WIDTH_MASK)
     774                               +null-ptr+
     775                               (abs error-number)
     776                               0                 ; default langid, more-or-less
     777                               pbuffer
     778                               0
     779                               +null-ptr+))
     780      (format nil "Windows error ~d" (abs error-number))
     781      (let* ((p (%get-ptr pbuffer))
     782             (q (%get-native-utf-16-cstring p)))
     783        (#_LocalFree p)
     784        q))))
     785       
     786                     
    765787
    766788;;; Kind of has something to do with files, and doesn't work in level-0.
Note: See TracChangeset for help on using the changeset viewer.