1. API 사용
DWORD dwTlsIndex;
LPVOID pData;
dwTLSIndex = TlsAlloc();
if(dwTLSIndex != TLS_OUT_OF_INDEXES)
{
pData = (LPVOID)LocalAlloc(LPTR, 256);
TlsSetValue(dwTlsIndex, pData);
TlsFree(dwTlsIndex);
CommonFunc();
pData = TlsGetValue(dwTlsIndex);
if(pData != NULL)
{
LocalFree((HLOCAL)pData);
}
}_declspec(thread) int g_nCount;
2번의 경우 .tls section을 이용하여 구현이 된다고 하는데, 방법이 더 쉽긴 하지만 dll의 경우 process에 attach/detach될 때 문제가 발생할 수 있기 때문에 1번을 사용하여야 된다고 합니다.
Posted by 장현준


