| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как конвертировать TCHAR в string |
| Автор: php5 16.8.2013, 16:38 | ||
Нужно определить путь к Temp директории, для этого юзаю функцию
Теперь мне нужно полученный путь передать в переменную типа string |
| Автор: Alexeis 16.8.2013, 16:56 | ||
В общем случае это не получиться. Я одно время делал так
|
| Автор: php5 16.8.2013, 17:39 |
| а как из tstring в string ? |
| Автор: kuzulis 16.8.2013, 18:07 | ||
Можешь просто использовать GetTempPathA, тогда в string без проблем. |
| Автор: EgoBrain 19.8.2013, 03:52 | ||
Это можно сделать используя выходной строковый поток ostringstream:
Только прежде чем использовать дождись комментариев экспертов, а то они еще могут тухлыми помидорами закидать |
| Автор: akizelokro 19.8.2013, 04:10 |
| wcstombs (хоть статью уже пиши) а GetTempDirA тоже должно сработать. |
| Автор: akizelokro 19.8.2013, 04:33 | ||
| Притом, сама постановка вопроса некорректна. В зависимости от директив препроцессова tstring уже либо string (без Юникода), либо wstring (c Юникодом). так что код должен звучать так
|
| Автор: Alexeis 19.8.2013, 07:49 | ||
Остается еще выяснить в какой локали нужно преобразовывать и совсем все будет хорошо. В общем случае, если преобразовывать юникод к анси, такая кака может получиться. Поэтому, или везде TCHAR или везде wchar_t/char . Всякие переходы чреваты кракозяблами. |
| Автор: akizelokro 19.8.2013, 08:48 | ||||
Пусть делает в текущей локали (даже пусть не указывает). Когда он решит писать на экспорт, тогда и будет заморачиваться. Сейчас же я не думаю, что ему интересно, как китайцы или арабы увидят надписи в его программе Добавлено через 4 минуты и 3 секунды
К тому же, от таких переходов никуда не деться. кой-где в майкрософте понасованы такие подводные камни, что проект в Юникоде, а вот в функцию надо передавать параметры в мультибайте. Или наоборот. Вот сейчас как рза такую задачку делаю. |
| Автор: php5 19.8.2013, 09:27 |
| Всем спасибо за коменты, пока что остановлюсь на GetTempPathA |
| Автор: akizelokro 19.8.2013, 14:24 | ||
Вот сейчас только тема изменения ресурсов в экзешнике с помощью Begin/UpdateResource. Часть ресурсов только в юникоде, часть строго бинарные данные. Как-то, кажется, совсем недавно, я попал на функции установки прокси в urlmon.h. Проект на юникоде, а пока не сбросил туда обычные строки, что-то не работало). Да и постоянно такие фенечки встречаются. А уж если цеплять обращения к html-ресурсам с различными парсерами и тому подобное, то руку на таких ещах можно набить достаточно просто. И ещё хорошо, если переносишь какуюнибудь либу с юникса на винду и она правильно написана. А то ведь получится связывать вещи в совершенно разных кодировках порой. А если брать ещё и ActiveX, то там в дополнение к прочим мелочам (помимо CString) выползают и BSTR. |