글
Technical Article 2007. 9. 26. 21:21wchar_t 타입을 받는 형식라이브러리 빌드 문제 C2664 Part 2
MIDL의 파싱 오류라고만 치부하기에는 MSDN의 샘플코드도 문제가 있었다.
이전글에서
HRESULT hr = m_pSpMgr->S_AddUser( (unsigned short*)("first112"), 0, (unsigned short*)("what"), (unsigned short*)("whatu"));
이런 코드를 사용했는데 TCHAR* 를 이용해서 인자를 전달하지 않고 위에 처럼
문자열 상수를 사용하게 되면 유니코드로 들어가는게 아니라,
일반 ansi char로 인자가 전달되게 된다.
제대로 전달하기 위해서 코드는 다음과 같이 해야하며,
HRESULT hr = m_pSpMgr->S_AddUser( (unsigned short*)_T("first112"), 0, (unsigned short*)_T("what"), (unsigned short*)_T("whatu"));
좀더 C++ 스럽게 표현하면
HRESULT hr = m_pSpMgr->S_AddUser(reinterpret_cast<unsigned short*>(L"first112"),
0,
reinterpret_cast<unsigned short*>(L"what"),
reinterpret_cast<unsigned short*>(L"whatu"));
이와 같이 해야 맞을것이다.
RECENT COMMENT