На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Страницы: (6) 1 2 [3] 4 5 ... Последняя » все  ( Перейти к последнему сообщению )  
> C++ Builder 2009 , Делимся впечатлениями
    volvo877
    Спасибо еще раз за помощь.

    Действительно как я придполагал дело было в Инди.
    Переделал функцию расшифровки на работу с Bytes - все заработало. :)
    Как я понимаю если мне до лампочки в данном месте этот Юникод я должен использовать TEncoding::Default ?
    Просто как эти подводные камни обойти в связи с заменой String'ов на юникод?
    Я сам лично в своем коде использовал всегда AnsiString. Поэтому мне беспокоиться на счет себя не надо.
    А вот как оказалось другие компоненты могут перейти (или остаться) на String.
    Как совместимость сохранить, какие подводные камни могут быть!

    P.S.
    На том форуме было вот это:
    А вот зато стандартный дельфовый EncdDecd поправили. С ним нет проблем.
    Это про что?
    Мне от этого Индивовского компонента нужно просто получить текстовую последовательность A..Z, a..z ну и символы типа = и т.п. Т.е. чтобы превратить шифрованный текст, обработанный xor'ом в человеческий так сказать.
    Сообщение отредактировано: Adalon -
      Цитата Adalon @
      Это про что?
      Это про то, что
      ExpandedWrap disabled
        #include <EncdDecd.hpp>
        ...
            AnsiString s = "this is a тест";
         
            AnsiString s_encoded = EncodeString(s);
            AnsiString s_decoded = DecodeString(s_encoded); // <--- Получаешь строку "this is a тест", а не кракозябры
        Кстати заметил такую тему что компилер материтьсо на то, что не используются параметры событий. к примеру тот же Sender
          Цитата mrbrooks @
          Кстати заметил такую тему что компилер материтьсо на то, что не используются параметры событий. к примеру тот же Sender

          А и правильно. А чтоб не было этого варнинга, всего-то пишешь :
          ExpandedWrap disabled
            void __fastcall TForm1 :: SomeEventHandler (TObject *) /* а имя не указуешь, если оно не используется в функции */
            {
            // ...
            }

          А как, в новом билдере кодогенерация такая же пещерная осталась, или поддержку более-менее новых процов ввели ?
            antigen сенкс.
            но как то это не по людски :rolleyes:
              Цитата mrbrooks @
              но как то это не по людски

              Что именно? То, что раньше, чтобы это увидеть, тебе надо было сделать Show All Warnings, а теперь - не надо ничего делать? Не нравится - отключи: Project->Options->C++ Compiler->Warnings->Enable Selected Warnings
                Цитата mrbrooks @
                но как то это не по людски

                Это в полном соответвии с правилами языка. А на варнинги, если хочешь, чтобы прога была стабильной и неглючной, следует всегда обращать внимание.
                  Цитата volvo877 @
                  Не нравится - отключи
                  точняг. что-то я лоханулся.

                  Цитата antigen @
                  Это в полном соответвии с правилами языка.
                  Бесспорный факт камрад.
                    /оффтоп
                    Цитата kwwsoft @
                    Оффициальная дата выпуска Delphi 2009 и C++ Builder 2009 - понедельник, 25 августа 2008 года.

                    напоминило случай в жизни, когда я с другом смотрел книги, было это ашь в 2007 году (начало лета), так вот на книге было написано дата издания : 2008 год.
                      заметил 2 неприятные вещи (по сравнению с БСБ6):
                      1. если вызывать контекстную помощь (F1 по слову в коде), очень часто среда уходит в глухой вис - тока диспечер виндовый ее убить может.... :'(
                      2. делал код с подменой оконной процедуры формы в котором была ошка. запустил под отладчиком. повисло все - тока ресет спас. раньше отладчик по любому вытягивал любые баги - до ресета дело не доходило. :wacko:

                      и еще - в БСБ6 был в менюшке хоть простенькой - но графредактор. тут нет. :o
                        1. Посмотрел ролик написания DataSnap на дельфи. Всё просто. Там под это дело сделан Server Data Modul. Ни какого COM. В билдере этого модуля нет. Видимо опять только Remote Data Module и COM.
                        2. Поставил DevExpress, всё нормуль вроде. Кинул кнопку на форму и кликнул 2 раза. Получил вот что... Некорректное объявление метода.

                        void __fastcall TForm1::cxButton1Click(Sender *)

                        При генерации через инспектор всё ок.
                        Сообщение отредактировано: Walerik -
                          Что-то не пашет под 2009 как надо Socket->ReceiveText() у TClientSocket и TServerSocket.
                          Получается хрень какая-то.
                          Причем отсылается то, что надо, т.к. старый сервак, компиленный еще под 2007 принимает от клиента, переписываемого под 2009 нормально. А вот тот принимает обратно хрень.
                          Перекомпилил сервер и тот пересал принимать нормально.
                          Вроде там везде AnsiString в методах. Не пойму в чем дело.
                          К примеру, вместо команды ###Ping### приходит ??????.
                          Сообщение отредактировано: Adalon -
                            в 2009-м по умолчанию если явно не указать другое то везде используется юникод. может в этом беда...
                            я вот юзаю UDP клиента и сервера - так вроди норомально все
                              kwwsoft
                              В хелпе описание класса там AnsiString для билдера.
                              Ну а как тогда правильно юзать?
                                Короче дело явно в юникоде.
                                SendText отсылает в Ansi, а вот ReceiveText возвращает в юникоде.
                                Стоит послать 1 символ <127 он доходит, стоит 2 - превращается в 1 китайский, оно и понятно.
                                DecodeString не помогает. Тут, думаю, дело в том же, что и в Indy - разрабы перелезли на юникод, а компоненты нормально адаптировать забыли - вот камни и вылезают.
                                Но может я и ошибаюсь - кто подскажет, как нормальный текст из ReceiveText получить?

                                Пока юзаю ReceiveBuf.
                                Вроде пашет.

                                Хелп просто убивает.

                                Pascal
                                function ReceiveBuf(var Buf; Count: Integer): Integer;
                                C++
                                __fastcall int ReceiveBuf( Buf, int Count);
                                Description
                                This is ReceiveBuf, a member of class TCustomWinSocket.

                                Все. :)

                                Я по смыслу могу понять что это. Могу догадаться что возвращает функция.
                                Но какое же это тупое описание метода, вы не находите?
                                Сообщение отредактировано: Adalon -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0399 ]   [ 15 queries used ]   [ Generated: 18.09.25, 08:50 GMT ]