C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Could not find a match  (Прочитано 1581 раз)
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Could not find a match
« : 07 Октябрь 2013, 11:48:15 »

Меня попросили откомпилировать код созданный в С++ Builder 2007 в RAD XE4. Из-за разных версий студий соответственно ошибки. Например, на строке:
1.
if(!Tcp.OpenStart(ServerInfo.Ip.c_str(),ServerInfo.Port))
Could not find a match for 'TTCPClient::OpenStart(wchar_t *,unsigned short)'
Я пишу так и тогда компилируется:
if(!Tcp.OpenStart((char *)ServerInfo.Ip.c_str(),ServerInfo.Port))

2.
TFile out(fn.c_str(),GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL);
Could not find a match for 'TFile::TFile(wchar_t *,long,int,int,int)'
Добавляю char *
TFile out((char *)fn.c_str(),GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL);

Можно ли так приводить к типу в этих случаях?



« Последнее редактирование: 07 Октябрь 2013, 11:54:13 от SilverFish » Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Could not find a match
« Ответ #1 : 07 Октябрь 2013, 14:12:09 »

Если аргумент имеет тип const char*, лучше приводить так:
Код
if(!Tcp.OpenStart(AnsiString(ServerInfo.Ip).c_str(), ServerInfo.Port)) { ... }
 
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


« Ответ #2 : 07 Октябрь 2013, 14:26:23 »

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.088 секунд. Запросов: 19.