2009-11-12 5 views

답변

1

는 대신 "wchar_t를"

을의 "문자"인 새로운 문자열을 할당해야 이 모든 할당을 숨기고

#include <atlbase.h> 
#include <atlconv.h> 

void YourFunction() 
{ 
    TCHAR wszHelloTchar = _T("Hello!\n"); 

    USES_CONVERSION; // a macro required once before using T2A() and other ATL macros 

    // printf require a char* 
    // T2A converts (if necessary) the TCHAR string to char 
    printf(T2A(wszHelloTchar)); 
} 
2

TCHAR은 프로젝트 설정에 따라 char 또는 wchar_t입니다. 후자의 경우 적절한 코드 페이지 매개 변수가있는 WideCharToMultiByte을 사용해야합니다. 당신은 포인터를 변환 할 수 없습니다

+0

예를

다른 의견에 언급 된 기능에 부름 때문에이 작업을 수행하는 가장 우아한 방법은 ATL 변환 매크로입니다 후자입니다 - "유니 코드 설정을 사용합니다" – MSalters

+0

이 정보는 편집 후에 추가 된 원래 게시물에 누락되었습니다. – dirkgently

2

내가 wcstombs는 이런 종류의 작업을 수행하는 위대한 작품을 찾을 수

관련 문제