#define WIN32_LEAN_AND_MEAN #include #include #include static void TlsGet( void ); static DWORD tlsIdx; int main( void ) { SetLastError(WSAEHOSTUNREACH); printf("LastError %d\n", GetLastError()); printf("WSALastError %d\n", WSAGetLastError()); WSASetLastError(WSAEHOSTUNREACH); printf("LastError %d\n", GetLastError()); printf("WSALastError %d\n", WSAGetLastError()); tlsIdx = TlsAlloc(); TlsSetValue( tlsIdx, (void *) 0x1234 ); TlsGet(); printf("LastError %d\n", GetLastError()); printf("WSALastError %d\n", WSAGetLastError()); return 0; } static void TlsGet( void ) { DWORD lastError = GetLastError(); TlsGetValue(tlsIdx); printf("LastError after TlsGetValue : %d\n", GetLastError()); SetLastError(lastError); }