На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> C++ Builder 2009 , Делимся впечатлениями
    Наконец то свершилось. Увидел свет 2009-й билдер. Несколько слов о нем с http://slavka.org.ru/

    Тотальная «уникодификация» затронула практически все составляющие IDE. Прежде всего, это изменение строковой концепции языка. Был добавлен новый строковой тип UnicodeString. Для UnicodeString внутренним форматом будет UTF16. Тип string, который ранее описывался как AnsiString, стал UnicodeString. Типы Char и PChar, которые ранее соответствовали AnsiChar и PAnsiChar, соответственно стали WideChar и PWideChar. Как следствие, все заголовочные файлы для работы с WinAPI изменены под юникод. Если ранее все функции соответствовали A функциям Windows, то теперь они будут соответствовать W функциям... Например, если в Delphi 2007 MessageBox определялась как MessageBoxA, то в Delphi 2009 она это будет MessageBoxW.

    Старые типы данных также можно будет использовать, но потребуется явное указание типа (например, AnsiString и AnsiChar для указания старой однобайтной строки и символа).

    Кроме того, был введен новый класс TEncoding, предназначенный для преобразования текста в различные кодировки. Соответственно, претерпели изменения некоторые базовые классы, которые стали использовать данный класс в реализации своих методов. Так метод LoadFromFile класса TStrings теперь автоматически определяет кодировку текста и производит его перекодировку в UTF-16 (UnicodeString), используя TEncoding. Множества вида Set of Char теперь в коде должны быть заменены на Set of AnsiChar. В противном случае компилятор выдаст ошибку.



    правда в полной версии приходится качать 4.5 Гига.

    ставлю - посмотрим что получится....
      похоже что ClassExplorer и в эту версию не включили.... :'(
      во всяком случае пока я его не нашел.
        ++++ СОМ объекты, созданные в 6-ой версии нормально переносятся, компилятся и регистрируются (в 2007-м билдере это не работало)

        ---- ClassExplorer есть только в дельфях и то не очень.... Возникает логический вопрос к разработчикам РАД2009 - и зачем убирать то что было удобно и нужно в 6-ке ???

        +-+- с юникодом не обманули - таки есть....
          и что - никто ниче на эту тему сказать не хочет :o :'(
            Не видели. Трудности с ... до установки
              Посмотрел вчера одним глазом :) не заметил отсутствия класс эксплорера сегодня посмотрю внимательней.
              порадовали расширенные возможности VCL

              Нда, действительно, класс експлорера не обнаружил, странно...
              Сообщение отредактировано: W_in_d -
                заметил одну неприятную деталь - если при установке выбрать С# то среда потом валится с эксцепшеном. может это у меня дистрибутив кривой, а может из-за того что на вирткалке крутится. но факт.
                  kwwsoft
                  а ты какую версию тестил.
                  Вроде бы еще не продают builder
                    Цитата Большой @
                    Вроде бы еще не продают builder


                    Оффициальная дата выпуска Delphi 2009 и C++ Builder 2009 - понедельник, 25 августа 2008 года.
                    В продажу оба продукта поступят по следующим ценам: Professional 399$, Enterprise 1299$, Architect 2299$.


                    у меня RAD Studio 2009 Architect версия 12.0.3163.16897.
                    Сообщение отредактировано: kwwsoft -
                      kwwsoft
                      А ты ее купил ? если нет то получи ошибки.
                        kwwsoft
                        Цитата kwwsoft @
                        Professional 399$
                        всего 400 баков вроде в 2007 она стоила 900
                          :o ммм....а кто вылоложит для тестов))) тоже хочется попробывать
                            это на оффсайте лежит насколько я помню...
                            но я брал где-то тут....
                            Сообщение отредактировано: kwwsoft -
                              Цитата Dem_max @
                              А ты ее купил ? если нет то получи ошибки

                              А триал уже религией запрещен что ли?
                              При чем тут куплено/не куплено?
                                Что, тема не интересна никому?
                                  kwwsoft
                                  Так как теперь строки в AnsiString выводить в том же MessageBox?
                                  С простыми разобрался, в хелпе есть
                                  Application->MessageBox(L"This should be on top.", L"Look", MB_OKCANCEL);

                                  А вот как мне AnsiString туда засунуть без сторонних переменных?
                                    ExpandedWrap disabled
                                      Application->MessageBox(UnicodeString(s).w_str(), L"Title", MB_OKCANCEL);
                                    устроит?
                                      volvo877
                                      Вполне. Тенкс.
                                        Есть ли возможность параллельного программирования, например для реализации программы на 4-х ядерном процессоре ?
                                          Как думаете, стоит ли C++ Builder 6 менять на C++ Builder 2009?
                                          Как там обстоят дела с размерами готовых программ (пустая VCL форма, скоко будет весить приложение) по сравнению с 6 билдером?

                                          Спасибо.
                                            а C++ Builder 2009 в когда выйдет?
                                              Уже в продаже
                                                Всё хорошо на удивление, пользуюсь, полка птьфу птьфу....
                                                NickiRawer, конечно, не пожалеешь
                                                  упаковка экзешников с любого билдера лучше всего производится ASPack'ом можно сжать болие чем на 30%
                                                    По мне - лучше чем 2007 и тем более 2006 - за счет более устойчивой работы самой среды.
                                                    Не радует до сих пор хелп.
                                                    Зато радует присутствие boost.
                                                      EvGeniy LellСовет в личке
                                                        EvGeniy Lell смотри пост 13
                                                          :D большое спасибо)))
                                                          Adilизвени))) ..."сенсоред" мне в аську слать ненадо!!!!! :lool:
                                                          все спасибо дали торент прийду с работы поставлю на заливку войду в число тестеров )))
                                                          пока сижу на 2006
                                                            volvo877
                                                            Прошу еще помощи по переходу (блин, думаю теперь, а стоило ли?) на 2009-ку.

                                                            Есть шифрованная строка в базе данных.
                                                            Строка изначально содержит как русские, так и английские символы.
                                                            Засовываю в переменную типа AnsiString значение поля.
                                                            Расшифровываю.
                                                            Английские видно, вместо русских белиберда.
                                                            Подозреваю что в Юникоде. Но я же AnsiString использую.
                                                            В чем трабла? Если просто нешифрованное поле считываю с русскими буквами - то все ОК.

                                                            P.S.
                                                            В общем проблема как оказалось в Indy'вских TIdEncoderMIME, TIdDecoderMIME.
                                                            Обрабатывая энкодером русский текст и потом обратно декодером получается белиберда.
                                                            Видимо надо после обработки декодером преобразовывать из юникода обратно в Ansi.
                                                            Как?
                                                            Сообщение отредактировано: Adalon -
                                                              Цитата Adalon @
                                                              В общем проблема как оказалось в Indy'вских TIdEncoderMIME, TIdDecoderMIME.
                                                              Обрабатывая энкодером русский текст и потом обратно декодером получается белиберда.


                                                              http://www.delphimaster.ru/cgi-bin/forum.pl?id=1222762776&n=0
                                                              См. последнее сообщение...
                                                                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. с оффсайта триал.
                                                                                                2. в этой теме я давал ссылки откуда еще можно качнуть.
                                                                                                Сообщение отредактировано: kwwsoft -
                                                                                                  Hi All!
                                                                                                  А как в BCB2009 с такими вещами как:

                                                                                                  1) 64 битный код?
                                                                                                  2) Поддержка многоязыкового интерфейса, которая была в BCB6 и которая есть в DELPHI 2006-2008?
                                                                                                  Сообщение отредактировано: Fedel -
                                                                                                    1)не знаю - у меня ось и среда 32-х разрядная.
                                                                                                    2)есть.
                                                                                                      да, оказалось верно то что говорил
                                                                                                      Adalon - недомудрили немного с юникодом при работе по сетке. если латынь по приему идет нормально - то вот вместо кирилицы полная билиберда. Вот на что нарвался (в результате тестов): использую очень простую связку юдп клиента и сервера. с клиента шлю постенькую строку
                                                                                                      ExpandedWrap disabled
                                                                                                         String str = "sSыЫ";
                                                                                                         Label1->Caption = str;
                                                                                                         Label1->Update();
                                                                                                         udpcl1->Send(str);

                                                                                                      смотрю это дело под отладчиком (CPU) - текст делается юникодный и потом шлется. мой текст преобразуется в слова 0х0073,0х0053,0х044в,0х042в что и есть в юникоде моя строка.

                                                                                                      на приемнике - юдп-сервере тож сделал простенько:
                                                                                                      ExpandedWrap disabled
                                                                                                        void __fastcall TForm1::udpsr1UDPRead(TIdUDPListenerThread *AThread, TBytes AData,
                                                                                                                  TIdSocketHandle *ABinding){
                                                                                                         int i;
                                                                                                         String str = "";
                                                                                                         for (i = 0; i < AData.Length; i++) {
                                                                                                             str += (char)AData[i];
                                                                                                         }
                                                                                                         Label2->Caption = str;
                                                                                                         Label2->Update();
                                                                                                        }


                                                                                                      а вот тут если посмотреть "сырой" массив AData - видно 0х73,0х53,0x3f,0x3f. :wall:

                                                                                                      как то у меня закралось подозрение что инди юдп сервер - компонент с глюком .. :o
                                                                                                      Есть мысли по этому поводу?
                                                                                                        kwwsoft
                                                                                                        В случае с TServerSocket текст шлется не юникодный.
                                                                                                        А вот при получении у них не исправлено то, о чем пишу они же в блогах.
                                                                                                        При работе с текстовым буферов не учитывается, что SizeOf(Char) уже не 1.

                                                                                                        Я исправил ситуацию так: юзаю ReceiveBuffer.
                                                                                                          Цитата Adalon @
                                                                                                          Я исправил ситуацию так: юзаю ReceiveBuffer.

                                                                                                          у меня этот буфер постоянно был пустой и такой вриант не прокатил.

                                                                                                          сделал по другому - сервер как и был с вкладки инди (TIdUDPServer для приема), а вот как клиента применил TUDPSoket с вкладки Internet (для отсылки).

                                                                                                          все ожило и нормально стыкуется.
                                                                                                            Цитата Fedel @
                                                                                                            Hi All!
                                                                                                            А как в BCB2009 с такими вещами как:

                                                                                                            1) 64 битный код?
                                                                                                            2) Поддержка многоязыкового интерфейса, которая была в BCB6 и которая есть в DELPHI 2006-2008?



                                                                                                            1) Должно появиться в версии 2010. По карйней мере тако они на конференции сказали.
                                                                                                            2) Есть
                                                                                                              меня порадовала помощь, теперь её можно пользоваться.
                                                                                                              компилятор работает шустрее и код тоже.
                                                                                                              дебугер пожалуй по глючнее будет 2006.
                                                                                                              надо ставить 2 апдейта
                                                                                                                а я вот заменил компилятор 6 версии компилятором 2009-й, и стало мне счастье :) ... а в чем оно ? никто не пробовал :) ?
                                                                                                                  ;) ну так поделись! в чем щастье то?
                                                                                                                  только в упаковке? али еще что?
                                                                                                                    али еще чего-то не заметил, да и исследованиями не занимался, работает - и то хорошо :) , может, кого-нибудь заинтересует, у кого времени побольше, тот и расскажет :)
                                                                                                                      C++ Builder 2010 выйдет 25 августа
                                                                                                                      http://habrahabr.ru/blogs/delphi/66711/
                                                                                                                        Наконец то в билдер возвратят инспектор классов, и панель компонентов вверху тоже радует, хоть и мелочь :)
                                                                                                                          Ну почему же? Мне интересна :) Качнул недавно дистриб.. версия архитект, с кряком - всё как полагается :D
                                                                                                                            Что касается Builder 2010, не нравиться то, что новый сервер DataSnap (без поддрежки COM), можно создать только в Delphi, а клиенты можно создавать уже в С++ Builder. Builder как бедный родственник...
                                                                                                                            Сообщение отредактировано: Kitty -
                                                                                                                              блин только что перешел на 2009 билдер =\
                                                                                                                              есть ли смысл ставить 2010 ?
                                                                                                                                Цитата agentex @
                                                                                                                                есть ли смысл ставить 2010

                                                                                                                                учитытывая:
                                                                                                                                1. огромное количество граблей в 2009-м
                                                                                                                                2. наличие ClassExplorer в 2010-м

                                                                                                                                наверное - ДА.
                                                                                                                                  Цитата Kitty @
                                                                                                                                  Builder как бедный родственник...

                                                                                                                                  Да он всегда был таким. и не только в этом случае

                                                                                                                                  Добавлено
                                                                                                                                  Написали, что они буст обновили до версии 1.39.
                                                                                                                                  Наверное опять урезанный.
                                                                                                                                    наверно глупый вопрос, но почему прога, скомпиленная на 09 работает в 10 раз медленнее (а точнее намертво подвисает на циклах) чем таже прога, скомпиленная в шестом? нет догадок с чем это связано?
                                                                                                                                      Цитата agentex @
                                                                                                                                      нет догадок с чем это связано?

                                                                                                                                      нет и не будет пока не будет приведен код.
                                                                                                                                        У дебаггера RAD Studio (2007, 2009 и, наверно, 2010) есть проблема на Windows 7 x64, отладчик вылетает при отладке многопоточных приложений с сообщением "Assertion failure "(!"SetThreadContext failed")" in ..\win32src\thread32.cpp at line 434"
                                                                                                                                        Апдейтов, решающих эту проблему, еще нет. Но есть сторонний фикс: http://www.monien.net/blog/index.php/2009/07/delphi-2009-windows-7-64-bit-debugger-crash-workaround/

                                                                                                                                        user posted image
                                                                                                                                        http://www.monien.biz/blog/wp-content/uploads/2009/07/Delphi_2007_2009_WOW64_Debugger_Fix.zip

                                                                                                                                        Сообщения были разделены в тему "Проблемы с ValueListEditor в C++ Builder 2009"
                                                                                                                                          сейчас стоит 2007. Станет ли на одной системе и 2009 и не возникнет ли траблов?
                                                                                                                                            Цитата Schumi @
                                                                                                                                            сейчас стоит 2007. Станет ли на одной системе и 2009 и не возникнет ли траблов?


                                                                                                                                            Раньше стояли вместе. Проблем не наблюдалось. Но лучше сразу ставить 2010 со всеми апдейтами.
                                                                                                                                            Список апдейтов для студий тут: http://cc.embarcadero.com/reg/rad_studio
                                                                                                                                              Kitty а почему стоит сразу перескакивать на 2010? Серьезные улучшения?
                                                                                                                                                Цитата Schumi @
                                                                                                                                                Kitty а почему стоит сразу перескакивать на 2010? Серьезные улучшения?


                                                                                                                                                Я в основном из-за обновления DataSnap, которую использую. :)
                                                                                                                                                  ага, понятно.
                                                                                                                                                  Просто я сторонник поставить среду, когда уже к ней все апдейты/патчи стоят выпустили :)
                                                                                                                                                  Но думаю переход 2009-2010 не такой болезненный, как 2007-2009 будет.
                                                                                                                                                  Kitty то есть ты сперва поставил 2007 делфи + билдер, потом наверх 2009 и всё оки было? А то народ говорил, что инсталлер 2009 ругаться стал, что типа удалите сперва старую версию...
                                                                                                                                                    Цитата Schumi @
                                                                                                                                                    когда уже к ней все апдейты/патчи стоят


                                                                                                                                                    Для С++ IDE 2010 уже есть достаточно апдейтов.


                                                                                                                                                    Цитата Schumi @
                                                                                                                                                    Kitty то есть ты сперва поставил 2007 делфи + билдер, потом наверх 2009 и всё оки было?


                                                                                                                                                    У меня стояла IDE 2007 (Делфи+Билдер), я поставила потом IDE 2009. Проблем не было. Правда, были нюансы потом, например вот этот с Data Explorer http://support.codegear.com/article/38475
                                                                                                                                                    Все же IDE 2010 лучше. :)
                                                                                                                                                      Раньше 6 использовал. Мне в школе от первой ПОмощи выдали 2009.
                                                                                                                                                      Это просто супер! Все работает быстрее. Можно изменять названия unito'в.
                                                                                                                                                      И вообще намного лучше шестерки.
                                                                                                                                                        А раньше названия юнитов нельзя было менять?
                                                                                                                                                          Только при сохранении.
                                                                                                                                                            Подскажите, пожалуйста, в какая версия C++ Builder работает с сервером Word 2007?
                                                                                                                                                              Любая.
                                                                                                                                                                Как любая, а например C++ Builder 6, он же работает только с Word 2k...
                                                                                                                                                                Просто у меня проблема не для этой темы форума, помогите пожалуйста: sources.ru
                                                                                                                                                                  Цитата sanchos91 @
                                                                                                                                                                  Как любая
                                                                                                                                                                  Так любая. OLE-серверу без разницы, откуда его грузят.
                                                                                                                                                                  Цитата sanchos91 @
                                                                                                                                                                  а например C++ Builder 6, он же работает только с Word 2k...
                                                                                                                                                                  В нем есть компонент, предназначенный для работы с "Word.Application.9". Также есть компоненты для "Word.Application.8"(MS Word97) и "Word.Application.10"(MS Word XP)
                                                                                                                                                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                                                                                                                                                  0 пользователей:


                                                                                                                                                                  Рейтинг@Mail.ru
                                                                                                                                                                  [ Script execution time: 0,1168 ]   [ 15 queries used ]   [ Generated: 16.07.25, 04:33 GMT ]