How do I convert a LPVOID (void*) to string?
Mike Parker
aldacron at gmail.com
Fri Oct 20 02:24:14 UTC 2017
On Monday, 16 October 2017 at 21:48:35 UTC, Nieto wrote:
> How do I convert/create a D string from LPVOID (void*)?
>
>> string GetLastErrorMessage() {
>>
>> LPVOID lpMsgBuf;
>> DWORD errorMessageID = GetLastError();
>>
>> FormatMessageA(
>> FORMAT_MESSAGE_ALLOCATE_BUFFER |
>> FORMAT_MESSAGE_FROM_SYSTEM |
>> FORMAT_MESSAGE_IGNORE_INSERTS,
>> NULL,
>> errorMessageID,
>> MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
>> cast(LPSTR) &lpMsgBuf,
>> 0, NULL);
>>
>>
>> return ??
>>}
If you're using this solely for Windows error messages, the
std.windows.syserror module has a function, sysErrorString, which
wraps it up for you. It also provides a WindowsException you can
throw which, given an Windows error code, will contain a
formatted system error message.
https://dlang.org/phobos/std_windows_syserror.html
More information about the Digitalmars-d-learn
mailing list