본문 바로가기

프로그래밍/버그 & 에러 리포팅

유니코드 빌드시 툴팁 윈도우 생성되지 않는 버그

Unicode에서 win32로 구현할 경우 생성되지 않는 문제

typedef struct tagTOOLINFOW {
    UINT cbSize;
    UINT uFlags;
    HWND hwnd;
    UINT_PTR uId;
    RECT rect;
    HINSTANCE hinst;
    LPWSTR lpszText;
#if (_WIN32_IE >= 0x0300)
    LPARAM lParam;
#endif
#if (_WIN32_WINNT >= 0x0501)
    void *lpReserved;
#endif

} TTTOOLINFOW, NEAR *PTOOLINFOW, *LPTTTOOLINFOW;

구조체에서 WIN32_WINNT가 기본값이 0x0501로 설정되어 있음 VS버그로 추정되나
Stdafx.h의 WIN32_WINNT값을 수정하여 컴파일시 동작함
Void* lpReserved값이 추가되어 Unicode일 경우 cbSize값에 sizeof(TOOLINFO) – sizeof(void*)를 해줘야 정상 동작함