출처 : http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=324664&SiteID=1
VS.NET 2003에서는 UuitToStringW사용에는 문제가 없다.
사용법)
WCHAR *str;
UuidToStringW(m_uuid, str);
위는 2003에서는 에러가 없지만 2005에서는 에러가 발생한다. 즉 WCHAR이 RPC_WSTR로 변환을 할 수 없다는 것이다.
이 이유는 현재 Platform SDK 에서는
typedef __nullterminated unsigned short __RPC_FAR *RPC_WSTR;
로 되어 있다. 이 것이 다음과 같이 읽어야되는데
typedef __nullterminated wchar_t __RPC_FAR *RPC_WSTR;
이렇게 안좨기 때문에 에러가 발생한다.
이를 해결할 수 있는 방법은 UuidToStringW에서 사용하는 문자열을 RPC_WSTR로 캐스팅하는 것이다. 아니면, #ifdef UNICODE를 추가해서 RPC_CSTR로 캐스팅하는 것도 좀더 포터블하게 만들 수 있다.
반응형
'3.구현 > VC++' 카테고리의 다른 글
네트워크 트래픽 사용량 측정하기 (0) | 2012.08.14 |
---|---|
[에러]LNK1241 Linker Tools Error (0) | 2012.08.14 |
[명령어] dumpbin (0) | 2012.08.14 |
[Visual .NET] 클래스 이벤트, 메시지 헨들러 정의 방법 (0) | 2012.08.14 |
[VC++]Writing Exception-Safe Code with Visual C++ (0) | 2012.08.14 |