2014-01-29 1 views
2

에 대한 strtoul 나는는 표준 무엇입니까 :: 유니 코드

int fromHex(const supportlib::string_t &s) 
{ 
    return std::strtoul(s.c_str(), NULL, 16); 
} 

supportlib::string_t 내가 유니 코드 또는 ASCII로 컴파일 할 것인지 여부에 따라 std::string 또는 std::wstring에 typedefed되는 유니 코드로이 코드를 변환 할 노력하고있어.

대부분의 다른 유형에서는 넓은 버전을 찾을 수 있지만 에는 사용할 수 없으므로 대신 무엇을 사용해야합니까? std::wstrtoul 대부분의 다른 유형과 마찬가지로 트릭을 수행하지 않습니다.

ging 4.8.1에서 MingW를 사용하고 있습니다.

error: cannot convert 'const wchar_t*' to 'const char*' for argument '1' to 'long unsigned int strtoul(const char*, char**, int)' 
+1

방법 표준 '에 대해 내가 유니 코드 모드로 컴파일 할 때

, 나는이 오류가 발생합니다 : : stoul'? 넓은 문자열을 전달했는지 여부에 따라 적절한 버전을 선택하면 추가 보너스가 생깁니다. 따라서 직접 할 필요가 없습니다. – chris

+0

나는 그걸 또한 시도했지만 stoul이 std에 있지 않다는 오류를 얻는다. – Devolus

+0

@chris 그럼 어떻게하면 되나요? – Devolus

답변

2

C99에서 적어도, 그것은 wchar.h에서의이 같은 프로토 타입 :

unsigned long int wcstoul (const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base); 
관련 문제