我正在尝试将此代码转换为unicode
int fromHex(const supportlib::string_t &s)
{
return std::strtoul(s.c_str(), NULL, 16);
}
supportlib::string_t
的类型定义为std::string
或std::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)'
答案 0 :(得分:2)
至少在C99中,它在wchar.h中并且原型如下:
unsigned long int wcstoul ( const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);