const char* guid = "6b8cd29254c2a9a8e3c6a6.74774921";
hr = IsActivated((STRCTYPE)guid);
That's the problem right there. A general rule of thumb regarding string types: never "cast" the string value to make it compile. Yes, it will compile, but it will also fail to function properly (as you've seen).
Look at the example C application and you'll see that a TCHAR * string is used for every TurboActivate function. That's because on Windows TurboActivate requires a "wchar_t" type of string (double-byte character Unicode strings), while on Linux / Mac / Unix TurboActivate requires a "char" type of string (single-byte character UTF-8 string).
Does that make sense?