我有一个支持UNICODE的Win32 C ++应用程序。我有一个问题,我使用itoa()函数,但我得到一个编译错误,因为我传递一个TCHAR *作为参数,而不是一个char *。
我该怎么做才能让它发挥作用?
TCHAR buf[32];
itoa( taskState, buf, 10 );
答案 0 :(得分:7)
对于TCHAR字符串,您应该使用_ttoi()。
答案 1 :(得分:5)
我们没有充分的理由TCHAR
,除非您在DLL中使用MFC定位Windows 9x,并且您有点害怕重建MFC。只需使用wchar_t
。
然后阅读Microsoft的itoa
文档。
您可以找到至少一个可以与wchar_t
字符串一起使用的变体。
使用itoa
系列通常不是一个好主意,但您还处于尚未学习查找文档的阶段。
那么,这就是你应该做的:检查文档(是的,我已经检查过,它就在那里)。
附录,截至2015年4月:自2011年中期以来,我们已经批准了C ++ 11和C ++ 14标准,编译器现在通常支持{std::towstring
函数来自{{ 1}}标题;它和<string>
一样方便,更安全。
答案 2 :(得分:3)
正如Adam Pierce所提到的,_itoa()的TCHAR版本是_itot(),你会在这里找到它: http://msdn.microsoft.com/en-us/library/yakksftt(v=vs.80).aspx