I have a GUID variable and I want to write inside a text file its value. GUID definition is:
typedef struct _GUID { // size is 16
DWORD Data1;
std::string
GuidToString(const GUID& guid, bool lower = false)
{
const char* hexChars = lower ? "0123456789abcdef" : "0123456789ABCDEF";
auto f = [hexChars](char* p, unsigned char v)
{
p[0] = hexChars[v >> 4];
p[1] = hexChars[v & 0xf];
};
char s[36];
f(s, static_cast(guid.Data1 >> 24));
f(s + 2, static_cast(guid.Data1 >> 16));
f(s + 4, static_cast(guid.Data1 >> 8));
f(s + 6, static_cast(guid.Data1));
s[8] = '-';
f(s + 9, static_cast(guid.Data2 >> 8));
f(s + 11, static_cast(guid.Data2));
s[13] = '-';
f(s + 14, static_cast(guid.Data3 >> 8));
f(s + 16, static_cast(guid.Data3));
s[18] = '-';
f(s + 19, guid.Data4[0]);
f(s + 21, guid.Data4[1]);
s[23] = '-';
f(s + 24, guid.Data4[2]);
f(s + 26, guid.Data4[3]);
f(s + 28, guid.Data4[4]);
f(s + 30, guid.Data4[5]);
f(s + 32, guid.Data4[6]);
f(s + 34, guid.Data4[7]);
return std::string(s, 36);
}