2016년 12월 18일 일요일

cl : 명령줄 error D8016: '/ZI'과(와) '/Gy-' 명령줄 옵션이 호환되지 않습니다.

cl : 명령줄 error D8016: '/ZI'과(와) '/Gy-' 명령줄 옵션이 호환되지 않습니다.

속성 페이지 -> C/C++ -> 코드 생성 -> 함수수준 링크 사용 ->  /Gy


참고 > https://msdn.microsoft.com/ko-kr/library/19z1t1wy(v=vs.140).aspx

2016년 12월 14일 수요일

쓰레드 이름지정

//  
// Usage: SetThreadName ((DWORD)-1, "MainThread");  
//  

#include   

const DWORD MS_VC_EXCEPTION = 0x406D1388;  

#pragma pack(push,8)  
typedef struct tagTHREADNAME_INFO  
{  
    DWORD dwType; // Must be 0x1000.  
    LPCSTR szName; // Pointer to name (in user addr space).  
    DWORD dwThreadID; // Thread ID (-1=caller thread).  
    DWORD dwFlags; // Reserved for future use, must be zero.  
 } THREADNAME_INFO;  
#pragma pack(pop)  

void SetThreadName(DWORD dwThreadID, const char* threadName) 
{  
    THREADNAME_INFO info;  
    info.dwType = 0x1000;  
    info.szName = threadName;  
    info.dwThreadID = dwThreadID;  
    info.dwFlags = 0;  

#pragma warning(push)  
#pragma warning(disable: 6320 6322)  

    __try
    {  
        RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info);  
    }  
    __except (EXCEPTION_EXECUTE_HANDLER)
    {  
    }  

#pragma warning(pop)  
}  
  
출처 > https://msdn.microsoft.com/ko-kr/library/xcb2z8hs.aspx