2010-12-30 7 views
0

char *를 VC++의 LPWSTR로 변환하는 방법은 무엇입니까?char *를 VC++의 LPWSTR로 변환하는 방법?

LPNETRESOURCEW nr = NULL; 
memset(&nr, 0, sizeof (NETRESOURCE)); 
nr->lpLocalName = strDriveLetter.GetBuffer(strDriveLetter.GetLength()); // this line giving me error "Cannot Convert char* to LPWSTR" 

도움을 주시면 감사하겠습니다. 감사합니다. .

답변

0

사용 MultiByteToWideChar 기능;

const char* msg = "foobarbaz"; 
int len = strlen(msg) + 1; 
wchar_t *w_msg = new wchar_t[len]; 
memset(w_msg, 0, len); 
MultiByteToWideChar(CP_ACP, NULL, msg, -1, w_msg, len); 
+0

질문 * c/C++ 코드에 *를 넣을 위치에 관한 질문이 있습니까? 첫 번째 줄과 세 번째 줄에서 뭔가 다른 작업을 수행합니다. 가이드 라인을 따르지 않으면 이렇게하는 이유가 있습니까? – BuddyJoe

+0

안녕하세요 @BuddyJoe. 특정 지침이 있는지 확실하지는 않지만 같은 줄에 여러 변수를 선언하면 알 수 있습니다.'c'가 모두 나오면 문제가 발생할 것입니다. 및'p'는 포인터입니다. 불행히도'int * c, * p;'와 같은 것을 쓰고 싶을 것입니다. 그런 말로하면, 나는 같은 줄에 여러 변수를 선언하는 것을 좋아하지 않는다. – Garviel

0

memset(&nr, 0, sizeof (NETRESOURCE)); 여기서 nr은 NULL 포인터입니다. 이것은 정확하지 않습니다.과 같은 명시 적 할당을 사용하거나 스택에 할당하여 nr이 유효한 메모리를 먼저 가리켜 야합니다.

관련 문제