Форум программистов, компьютерный форум CyberForum.ru

Cannot convert 'UnicodeString' to 'String' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 20:24     Cannot convert 'UnicodeString' to 'String' #1
Подскажите как конвертировать такие форматы, компилятор если что RAT Studio 2010
нашел тут вариант наоборот(Cannot convert 'string' to 'UnicodeString'):
C++
1
2
3
using namespace std;
string sstr = "test";
UnicodeString str = sstr.c_str();
обратно не работает(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 21:16     Cannot convert 'UnicodeString' to 'String' #2
Это не Unicode строка
C++
1
string sstr = "test";
sstr.c_str() возвращает указатель на строку с нулевым символом в конце, для передачи в функции.
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 21:36  [ТС]     Cannot convert 'UnicodeString' to 'String' #3
а, там вот так было
C++
1
string sstr = L"test";
но ведь c_str() нужен для конвертации в char*, разве в юникод можно чары записывать?
если да, то как сделать наоборот?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 21:41     Cannot convert 'UnicodeString' to 'String' #4
Цитата Сообщение от 1ropb Посмотреть сообщение
а, там вот так было
string - это
C++
1
typedef basic_string<char> string
wstring - это
C++
1
typedef basic_string<wchar_t> wstring
c_str() возвращает указатель на строку с нулевым символом в конце.
Это необходимо для функций, типа printf'а.
Посмотрите разницу
C++
1
2
    string s="asdfg";
    printf("%s",s);
C++
1
2
    string s="asdfg";
    printf("%s",s.c_str());
string вернет char*, а wstring вернет wchar_t*
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 22:16  [ТС]     Cannot convert 'UnicodeString' to 'String' #5
Ну получилась очень странная вещь в виде смайла:
Миниатюры
Cannot convert 'UnicodeString' to 'String'  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 22:26     Cannot convert 'UnicodeString' to 'String' #6
C++
1
2
string sstr = "test";
UnicodeString str = sstr.c_str();
В данном случае Вы пытаетесь переменной типа UnicodeString присвоить указатель на char
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 22:38  [ТС]     Cannot convert 'UnicodeString' to 'String' #7
хм, так как мне из UnicodeString сделать TString (или TStringList*)?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 22:49     Cannot convert 'UnicodeString' to 'String' #8
Как из UnicodeString строку перевести в TString?
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 23:14  [ТС]     Cannot convert 'UnicodeString' to 'String' #9
а, спс, вот так сделал
C++
1
2
3
4
5
6
TStringList* SL = new TStringList;
String S;
// Весь текст
S= SL->Text;
// Конкретная строка
S= SL->Strings[index];
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 23:15     Cannot convert 'UnicodeString' to 'String' #10
C++
1
delete SL;
потом не забудьте =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 23:24     Cannot convert 'UnicodeString' to 'String'
Еще ссылки по теме:

C++ Std::string and std::wstring convert
C++ Convert string to char
Ошибка Cannot convert std::string to void* C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 73
07.11.2012, 23:24  [ТС]     Cannot convert 'UnicodeString' to 'String' #11
кстати да)
Yandex
Объявления
07.11.2012, 23:24     Cannot convert 'UnicodeString' to 'String'
Ответ Создать тему
Опции темы

Текущее время: 16:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru