информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[c++] CString 29.05.01 23:48  Число просмотров: 799
Автор: kolbaser Статус: Незарегистрированный пользователь
<"чистая" ссылка>

> А какого типа у тебя параметр i ?
вот это да. Просто офигеть.
i у меня был объявлен как UINT и при этом он выдавал вышеозначенную ошибку...
при замене на int всё замечательно компилируется...
ваши комментарии.
<programming>
[c++] CString 27.05.01 05:28  
Автор: kolbaser Статус: Незарегистрированный пользователь
<"чистая" ссылка>
такой вопрос,
из-за чего может возникать сообщение об ошибке
error C2666: '[]' : 2 overloads have similar conversions
в следующем куске кода
{
MessageBuffer[24+i] = m_sMessage[i];
}
где
BYTE *MessageBuffer = new BYTE[n];
CString m_sMessage;
?????
ошибка возникает с оператором [] для CString
PS. имеется такой же кусок кода в другом проекте, где он замечательно компилируется.....


[c++] CString 27.05.01 13:37  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> такой вопрос,
> из-за чего может возникать сообщение об ошибке
> error C2666: '[]' : 2 overloads have similar conversions
> в следующем куске кода
> {
> MessageBuffer[24+i] = m_sMessage[i];
> }
> где
> BYTE *MessageBuffer = new BYTE[n];
> CString m_sMessage;
> ?????
> ошибка возникает с оператором [] для CString
> PS. имеется такой же кусок кода в другом проекте, где он
> замечательно компилируется.....
>

да ХЗ..., может оператор был перегружен. раз он показал - '[]' : 2 overloads - а дальше не показывает какие 2 overloads именно? или еще какое нить сообщение, к примеру - See declaration of class CString?
А какого типа у тебя параметр i ?
На всякий случай мона сделать так, проблема должна исчезнуть.
MessageBuffer[24+i] = (BYTE)m_sMessage[int(i)];
[c++] CString 29.05.01 23:48  
Автор: kolbaser Статус: Незарегистрированный пользователь
<"чистая" ссылка>

> А какого типа у тебя параметр i ?
вот это да. Просто офигеть.
i у меня был объявлен как UINT и при этом он выдавал вышеозначенную ошибку...
при замене на int всё замечательно компилируется...
ваши комментарии.
[c++] CString 30.05.01 01:11  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
>
> > А какого типа у тебя параметр i ?
> вот это да. Просто офигеть.
> i у меня был объявлен как UINT и при этом он выдавал
> вышеозначенную ошибку...
> при замене на int всё замечательно компилируется...
> ваши комментарии.

Ничего офигительного.
Вся фишка в том, что обычно через оператор [] обращаются индексом типа size_t - unsigned int
а в CString есть оператор :
TCHAR operator [] (int nIndex) const
так вот, когда ты к нему (к стригу) обращаешься, компилятор не знал какой оператор задействовать, потому что он можен сконвертировать твой UINT в int, тогда идет оператор класса.
а так же (я так пологаю) CString => const char* /operator LPCTSTR/ => operator [] (size_t index) - стандартный оператор указателя/массива.

Вот он и матюгался. Ошибка выявляется, когда идет 2-ой "перегужаемый" смысл. Поэтому никогда не ленись делать casting спокойней спать будешь и без анальгина :)))))
а почему он компилился в другом проекте без ошибок - не могу сказать. Скорее всего какие то опции были заменены, или разные компиляторы - версия или компания. это уже ты знаешь.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach