Использование itoa с TCHAR - PullRequest
3 голосов
/ 25 июня 2011

У меня есть приложение Win32 C ++, которое поддерживает UNICODE.У меня проблема, когда я использую функцию itoa (), но получаю ошибку компиляции, потому что я передаю TCHAR * в качестве параметра вместо char *.

Что я могу сделать, чтобы она работала?

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

Ответы [ 3 ]

7 голосов
/ 25 июня 2011

Для строк TCHAR вы должны использовать _ttoi ().

5 голосов
/ 25 июня 2011

Для нас нет веской причины TCHAR, если вы не ориентируетесь на Windows 9x с MFC в DLL, и вы как бы боитесь перестраивать MFC.Просто используйте wchar_t.

Затем прочитайте документацию Microsoft по itoa.

Там вы найдете как минимум один вариант, который можно использовать со строкой wchar_t.

Как правило, не рекомендуется использовать itoa семейство, но вы находитесь на этапе, когда вы еще не научились искать документацию.

Итак, вот что вам следует сделать: проверить документацию(и да, я проверил, и он есть).


Приложение от апреля 2015 года: с середины 2011 года мы ратифицировали стандарты C ++ 11 и C ++ 14,и компиляторы теперь обычно поддерживают функцию C ++ 11 std::towstring из заголовка <string>;это так же удобно, как itoa и более безопасно.

3 голосов
/ 20 июня 2013

Как сказал Адам Пирс, версия _itoa () для TCHAR - это _itot (), вы найдете ее здесь: http://msdn.microsoft.com/en-us/library/yakksftt(v=vs.80).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...