什么是undode的std :: strtoul

时间:2014-01-29 18:15:54

标签: c++ unicode

我正在尝试将此代码转换为unicode

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

supportlib::string_t的类型定义为std::stringstd::wstring,具体取决于我是否要使用unicode或ASCII进行编译。

对于大多数其他类型,我可以找到一个宽版本但不适用于std::strtoul所以我应该使用什么呢?与大多数其他类型一样,std::wstrtoul不起作用。

我正在使用MingW和gcc 4.8.1。

当我在unicode模式下编译它时,我收到此错误:

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

1 个答案:

答案 0 :(得分:2)

至少在C99中,它在wchar.h中并且原型如下:

unsigned long int wcstoul ( const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);