使用itoa和TCHAR

时间:2011-06-25 08:25:01

标签: c++ winapi encoding

我有一个支持UNICODE的Win32 C ++应用程序。我有一个问题,我使用itoa()函数,但我得到一个编译错误,因为我传递一个TCHAR *作为参数,而不是一个char *。

我该怎么做才能让它发挥作用?

TCHAR buf[32];
itoa( taskState, buf, 10 );

3 个答案:

答案 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