Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Cannot convert 'UnicodeString' to 'const char *'


Автор: lips 21.10.2012, 11:47
Делаю локальную сеть(winsock), столкнулся с проблемой:
Код

addr.sin_addr.s_addr=inet_addr("192.168.0.3");

Как сделать чтобы ip мог задать пользователь вручную к примеру в Edit1->Text или каким то другим способом.
На вот такое:
Код

addr.sin_addr.s_addr=inet_addr(Edit1->Text);

пишет вот такое:
[BCC32 Error] Unit1.cpp(1814): E2034 Cannot convert 'UnicodeString' to 'const char *'
[BCC32 Error] Unit1.cpp(1814): E2342 Type mismatch in parameter 'cp' (wanted 'const char *', got 'UnicodeString')

Господа программисты, подскажите пожалуйста!
Спасибо заранее!

Автор: Dem_max 21.10.2012, 12:41
inet_addr(Edit1->Text.t_str());

Автор: lips 21.10.2012, 14:10
del
не работает так:
[BCC32 Error] Unit1.cpp(1815): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] Unit1.cpp(1815): E2342 Type mismatch in parameter 'cp' (wanted 'const char *', got 'wchar_t *')

Автор: lips 21.10.2012, 14:38
по сути проблема простая, надо преобразовать из UnicodeString в char
как это сделать?)

нашёл всётаки сам решение, но всёрано спасибо!
Код

 wchar_t *wc = Edit1->Text.t_str();
 char c[20];
 wcstombs(c, wc, wcslen(wc)+1);



Автор: Dem_max 21.10.2012, 15:21
Если юникодный проект 
то можно так
Код

AnsiString str;
str = Edit1->Text;
inet_addr(str.c_str());

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)