SetLastError(0);
RPC_CSTR rpcGuidStr_L = nullptr;
GUID* PgGuid_L = nullptr;
std::string sGuid_L = "";
PgGuid_L = new GUID;
CoCreateGuid(PgGuid_L);
if (GetLastError() != 0){std::cout << GetLastError() << "001\n"; _getch(); exit(1);}
UuidToStringA(PgGuid_L, &rpcGuidStr_L);
if (GetLastError() != 0){std::cout << GetLastError() << "002\n"; _getch(); exit(1);}
sGuid_L = (char*)rpcGuidStr_L;
RpcStringFreeA(&rpcGuidStr_L);
delete PgGuid_L;
std::cout << sGuid_L;
ERROR_ENVVAR_NOT_FOUND
Код:
Работает нормально, UuidToStringA возвращает 0 - как и положенно, но почему GetLastError() - возвращает ERROR_ENVVAR_NOT_FOUND(203) ? Согласно MSDN ф-ия UuidToString вообще ничего не должна писать в GetLastError...
P.S.: Есть ли альтернативный способ получения GUID?