На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (10) « Первая ... 4 5 [6] 7 8 ... Последняя » все  ( Перейти к последнему сообщению )  
> необходимо разобраться с обработкой системных исключений , (что писать сюда: catch (...))? компилятор g++
    ExpandedWrap disabled
      E:\vso_moio\Программирование_на_C++\Новая папка (5)>cmd
      Microsoft Windows XP [Версия 5.1.2600]
      (С) Корпорация Майкрософт, 1985-2001.
       
      E:\vso_moio\Программирование_на_C++\Новая папка (5)>ra_6.exe
      Поймали исключение. Код C0000094
       
      E:\vso_moio\Программирование_на_C++\Новая папка (5)>

    g++
    Сообщение отредактировано: повстанец -
      Цитата повстанец @
      g++

      покажи вывод "g++ -v"
        Цитата niXman @
        C:\test>g++ except.cpp -oexcept

        C:\test>except
        Поймали исключение. Код 0xC0000094.

        Ну вот судя по всему с G++ у тебя сработал TopLevelUnhandledExceptionFilter, а не catch, как должно быть. Что и требовалось доказать! ;) :)

        niXman, я поставил себе mingw32-gcc-4.6.2-release-c,c++,objc,objc++,fortran-sjlj.7z по ссылке у тебя в подписи. Может че другое надо было ставить? В общем запускаю g++ seh.cpp -oexcept. Если из другой директории, он пишет "Отказано в доступе", если из bin'а он пишет: "g++: error: CreateProcess: No such file or directory". Что это за фигня и как её побороть? :)
        Сообщение отредактировано: neokoder -
          Цитата neokoder @
          Что это за фигня и как её побороть?

          это микрософт-специфик проблема. пиши в микрософт.
            Цитата niXman @
            это микрософт-специфик проблема. пиши в микрософт.

            Ты прикалываешься, да?
              Цитата neokoder @
              Ты прикалываешься, да?

              да :)
              где-то я встречал такую проблему. вроде как(если память не изменяет) это какая-то защита виндуз от непроверенных файлов. как-то это исправляется. я не помню, увы.
                ExpandedWrap disabled
                  E:\vso_moio\Программирование_на_C++\Новая папка (5)>g++ -v
                  Using built-in specs.
                  COLLECT_GCC=g++
                  COLLECT_LTO_WRAPPER=e:/dev-cpp_nomingw/bin/../libexec/gcc/mingw32/4.5.0/lto-wrapper.exe
                  Target: mingw32
                  Configured with: ../gcc-4.5.0_20100311/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --ena
                  ble-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-werror --build=mingw32 --prefix=/mingw
                  Thread model: win32
                  gcc version 4.5.0 20100311 (experimental) (GCC)
                  neokoder, у тебя ви7 или виста?
                    Цитата niXman @
                    neokoder, еще, способы убедить всех в том что микрософт-специфик расширения являются стандартом, будут?

                    Ты о чем? Тебе не понравились __try __except, я тебе привел пример с try-catch. Не, ну если у тебя try-catch уже не влазиют в стандарт, то пора бы тебе задуматься, что это за стандарт такой. Может он у тебя в голове просто, стандарт этот? :)

                    Добавлено
                    Цитата niXman @
                    neokoder, у тебя ви7 или виста?

                    Win7 64бит.
                      Цитата повстанец @
                      4.5.0 20100311 (experimental)

                      да ты че... :crazy: во первых - раритет. во вторых - тестовая версия.

                      Добавлено
                      Цитата neokoder @
                      Тебе не понравились __try __except, я тебе привел пример с try-catch.

                      либо ты прикидываешься, либо второе... в стандарте нет ничего про то, что С++ исключения должны обрабатывать ошибки деления на ноль, разыменование нулевого указателя, и всякие самопальные расширения ОС и производителей компиляторов.
                      Сообщение отредактировано: niXman -
                        повстанец, C++EH будут в нём работать нормально. Сами по себе, в отрыве от SEH. Можно допилить его до поддержки SEH путём SetUnhandledExceptionFilter(), транслируя в своём обработчике SEH-овые исключения в написанный специально для этого некий класс, и в итоге работая т.о. только с C++EH. Но подружить обе технологии не удастся, в лучшем случае будешь костылять то одно, то другое для тех или иных конкретных ситуаций. Программа одна, кадры исключений долждны быть в едином списке, и те, и другие, однако g++ имеет собственный C++EH движок, отличный от SEH, который предоставляется ОС.
                        Цитата niXman @
                        микрософткомпилятор славится своим не соответствием стандарту.
                        Ни один компилятор не соответствует Стандарту в полной мере. Только не надо путать нарушения Стандарта и расширения Стандарта. Стандарт допускает реализациям расширять предсотавляемые возможности, если они не противоречат Стандарту. G++ и рядом с MS не валялся по части таких "нарушений". MSные компиляторы расширяют синтаксис для поддержки особенности платформы. И делают это в соответсвтие с правилами Стандарта. Чего нельзя сказать о g++. Он меня уже не раз удивлял своими фичами.
                        Сообщение отредактировано: Qraizer -
                          Цитата Qraizer @
                          Только не набо путать нарушения Стандарат и расширения Стандарта. G++ и рядом с MS не валялся по части таких "нарушений". MSные компиляторы расширяют синтаксис для поддержки особенности платформы. И делают это в соответсвтие с правилами Стандарта. Чего нельзя сказать о g++. Он меня уже не раз удивлял своими фичами.

                          ты ведь откровенно лжешь себе(микрософту) в пользу. низко, увы.

                          Добавлено
                          как можно превратить несоответствие стандарту в расширение стандарта? :blink: это же синонимы.
                          Сообщение отредактировано: niXman -
                            И ещё раз повторю. Глупо говорить о наличии порта под некую платформу, если эта платформа не поддерживается полностью. Ну, пусть не полностью, но ключевые аспекты архитектуры должы быть поддержаны. Ну, пусть не сразу. Но блин, почти 20 лет прошло!
                              Так я не понял почему у меня не работает MinGW, Что это блин за стандарты такие если они ни хрена не работают? :-? :)

                              С MSVC таких проблем не было.
                              Сообщение отредактировано: neokoder -
                                Цитата niXman @
                                как можно превратить несоответствие стандарту в расширение стандарта?
                                Почитай Стандарт. И если уж не согласен и обвиняешь, обвиняй обе стороны.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0424 ]   [ 15 queries used ]   [ Generated: 12.10.25, 01:56 GMT ]