На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> error: предупреждение обработано как ошибка - файл "object" не создан
    переношу код с проекта в проект вилазит такая ошибка
    предупреждение обработано как ошибка - файл "object" не создан - как убрать ету ошибку

    ExpandedWrap disabled
      wchar_t ch0, ch1, ch2;
      ch0 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 ); <<<< ерор
    Сообщение отредактировано: NOCaut -
      _tcstol,эта функция кажется в лонг конвертит судя по названию, к файлам наверное отношения не имеет.

      Цитата NOCaut @
      strEncodedText

      Это что за объект?
        Cstring strEncodedText;

        Но на другом моем проекте она ж работает :-?

        Добавлено
        неработает само присвоение. сама строчка рабочая
          NOCaut, напиши полный текст отчета компилятора об ошибке.
            ExpandedWrap disabled
              1>------ Построение начато: проект: WebCtrl, Конфигурация: Release UNICODE Win32 ------
              1>Компиляция...
              1>CntrEvnt2.cpp
              1>.\CntrEvnt2.cpp(28) : error C2220: предупреждение обработано как ошибка - файл "object" не создан
              1>.\CntrEvnt2.cpp(28) : warning C4244: =: преобразование 'long' в 'wchar_t', возможна потеря данных
            Сообщение отредактировано: NOCaut -
              Возможно _tcstol не может сконвертить CSring во что-то не зная сигнатуры _tcstol трудно сказать во что.

              Добавлено
              http://www.codeguru.com/forum/archive/index.php/t-369504.html
              Возможно второй параметр функции должен быть не NULL
                Цитата
                Возможно _tcstol не может сконвертить CSring во что-то не зная сигнатуры _tcstol трудно сказать во что.


                _tcstol
                  щас проверим

                  Добавлено
                  да нет же говорю правая часть строки РАБОЧАЯ

                  Добавлено
                  ExpandedWrap disabled
                    _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );

                  так компилится

                  Добавлено
                  ето наверное структура проекта дуратская. за нее все
                    Ну а если сделать явное приведение?
                      :lool:

                      ExpandedWrap disabled
                        wchar_t* _result = 0;
                        DWORD count = _tcstol( strEncodedText.Mid( i+1, 2 ), &_result, 16 );


                      Как-то так.
                        ExpandedWrap disabled
                          CString URLDecode( CString strEncodedText )
                          {
                              CString strResult;
                              wchar_t ch0, ch1, ch2;
                              wchar_t wch;
                              TCHAR tch;
                              int i = 0;
                           
                              while( i<strEncodedText.GetLength() )
                              {
                                  tch = strEncodedText.GetAt(i);
                                  
                                  if( tch != _T('%') )
                                  {
                                      // a character not encoded
                                      strResult += tch;
                                      i++;
                                  }
                                  else
                                  {
                                      // a character encoded !!
                                      ch0 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );
                                      i += 3;
                           
                                      if( ch0 < 0x80 )
                                          // 1 byte for UTF-8
                                          // 0xxx xxxx
                                          wch = ch0;
                                      else
                                      {
                                          if( strEncodedText.GetAt(i)!= _T('%') ) // Error!
                                              continue;
                           
                                          ch1 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );
                                          i += 3;
                           
                                          if( ch0 < 0xe0 )
                                          {
                                              // 2 byte for UTF-8
                                              // 110x xxxx 10xx xxxx
                                              wch = ((ch0&0x1f)<<6)
                                                  | (ch1&0x3f);
                                          }
                                          else
                                          {
                                              // 3 byte for UTF-8
                                              if( strEncodedText.GetAt(i)!= _T('%') ) // Error!
                                                  continue;
                           
                                              ch2 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );
                                              i += 3;
                           
                                              // 1110 xxxx 10xx xxxx 10xx xxxx
                                              wch = ((ch0&0x0f)<<12)
                                                  | ((ch1&0x3f)<<6)
                                                  | (ch2&0x3f);
                                          }
                                      }
                                      strResult += wch;
                                  }
                              }
                          }
                              return strResult;


                        Добавлено
                        а можнго както компилятор настроить?
                          Отвечающие здесь - вы хоть сообщение об ошибке читаете? В настройках проекта стоит высокий уровень предупреждений - предупреждения рассматриваются как ошибки, соответственно компиляция не проходит.
                            trainer, :D
                              спасибо. а где ети настройки?
                                Нужно либо убрать источник предупреждения - [неявное] преобразование long в wchar_t с возможной потерей значащих разрядов, либо убрать ключик /WX, либо добавить /wd4244, либо с помощью #pragma warning подавить это предупреждение в этом конкретном месте.
                                Сообщение отредактировано: trainer -
                                  конец рабочего дня блин :)
                                    всем спасибо
                                      Цитата NOCaut @
                                      а где ети настройки?
                                      Здесь: http://msdn.microsoft.com/RU-RU/library/thxezb7y внизу текст
                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                      0 пользователей:


                                      Рейтинг@Mail.ru
                                      [ Script execution time: 0,0489 ]   [ 16 queries used ]   [ Generated: 17.08.25, 01:35 GMT ]