get_error_message() is for native calls in native/win32/ffi.c
error_message() is called via alien-invoke from factor code bugfix: the last "fix" caused the factor runtime to get a char* instead of F_STRINGcvs
parent
211c60c210
commit
7242f38fd7
|
@ -68,17 +68,22 @@ char *buffer_to_c_string(char *buffer)
|
|||
return (char*)c_str;
|
||||
}
|
||||
|
||||
char *last_error()
|
||||
F_STRING *get_error_message()
|
||||
{
|
||||
DWORD id = GetLastError();
|
||||
return from_c_string(error_message(id));
|
||||
}
|
||||
|
||||
char *error_message(DWORD id)
|
||||
{
|
||||
char *buffer;
|
||||
int index;
|
||||
DWORD dw = GetLastError();
|
||||
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
dw,
|
||||
id,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPTSTR) &buffer,
|
||||
0, NULL);
|
||||
|
|
|
@ -6,6 +6,7 @@ void primitive_millis(void);
|
|||
void primitive_random_int(void);
|
||||
#ifdef WIN32
|
||||
char *buffer_to_c_string(char *buffer);
|
||||
DLLEXPORT char *last_error();
|
||||
F_STRING *get_error_message();
|
||||
DLLEXPORT char *error_message(DWORD id);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue