На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (245) « Первая ... 39 40 [41] 42 43 ...  244 245  ( Перейти к последнему сообщению )  
> Есть ли будущее у DELPHI?
    Цитата [S]mike @
    Не вываливается. Потому что функции используются. В таблице экспорта

    [troll]Каким образом они там используются? Если функция принимает несколько нетривиальных параметров, таблица экспорта сама их генерит, забивает данными и вызывает эту функцию передавая туда данные?[/troll]
    Что вы понимаете под термином "использование функции" ? :unsure:
    Сообщение отредактировано: KILLER -
      KILLER, не знаю как в Делфи, но в Билдере если в сигнатуре оглашения ф-ции присутствует
      ExpandedWrap disabled
        __declspec(dllexport)

      (для простоты и совместимости с Делфи, видимо, это задефайнено на макрос PACKAGE) - то линкер всегда ее оставляет, даже если она внутри exe/dll ниразу не вызывается, иначе - выбрасывает.
        Цитата Chow @
        то линкер всегда ее оставляет, даже если она внутри exe/dll ниразу не вызывается, иначе - выбрасывает.

        Причем тут __declspec(dllexport) ? на сколько я знаю к билдеру этот модификатор не имеет никакого отношения, и ничего он никуда не выкидыват, а просто либо помещает функцию в таблицу экспорта, либо не помещает.
          Цитата KILLER @
          и ничего он никуда не выкидыват, а просто либо помещает функцию в таблицу экспорта, либо не помещает.

          ну да... но если этого спецификатора нету и эта ф-ция внутри не используется - он ее выкидывает..
          Или мы не о том говорим? :huh:
            Цитата Chow @
            ну да... но если этого спецификатора нету и эта ф-ция внутри не используется - он ее выкидывает..

            Откуда выкидывает? Я не понимаю.

            Цитата Chow @
            Или мы не о том говорим?

            Наверно не о том. Я спросил, если я пишу DLL, в которой описываю функции, которые я не использую, то значит делфи будет ругаца на них ворнингом - и не понял зачем такое вообще нужно. Мне ответили, что когда я пишу DLL, функции используются, в таблице экспорта. Под использованием функции я понимаю, непосредственно вызов функции, с передачей в нее параметров и получения конкретных действий, возложенных на эту функцию.

            Добавлено
            Та даже, ладно. Уйдем от DLL, если сложно выразился. Рассмотрим обычный такой себе пример. Я разрабатываю приложение, описываю функции, которые в будущем могу использовать или нет. Оно мне будет ругатся ворнингом что я не юзнул ту или иную функцию ? С чего вдруг компилятор должен мне выдавать предупреждение ? Я не хочу ее использовать, пока не хочу. ну с локальными переменными, которые не юзаюца - то понятно. Толку от них 0, если объявил, но нигде не юзнул. А вот с функциями то зачем такое делать? В чем смысл? Типа, вдруг я забуду юзнуть функцию которую сам же написал? Ну както по лоловски это все выглядит. И еще выставлять это за преимущество - выглядит в двойне по лоловски...
              Цитата KILLER @
              Это как? :huh:

              в ответ на подобные вопросы я там привёл примеры. но, как выяснилось, они отлавливаются компилятором, если выкрутить уровень параноидальности на максимум.
                Цитата Chow @
                __declspec(dllexport)

                (для простоты и совместимости с Делфи, видимо, это задефайнено на макрос PACKAGE) - то линкер всегда ее оставляет, даже если она внутри exe/dll ниразу не вызывается, иначе - выбрасывает.

                так экспортные функции ещё могут определяться в .DEF файле.
                  Цитата Qraizer @
                  Моё мнение - нефиг предкомпилированные заголовки юзать.

                  и, да- таки я юзаю прекомпилированное вот это самое.
                    Цитата KILLER @
                    Откуда выкидывает? Я не понимаю.

                    Из результата компиляции (exe/dll/bpl).
                    Но наверное не о том мы :)

                    Цитата KILLER @
                    Я разрабатываю приложение, описываю функции, которые в будущем могу использовать или нет. Оно мне будет ругатся ворнингом что я не юзнул ту или иную функцию ? С чего вдруг компилятор должен мне выдавать предупреждение?

                    Честно говоря даже не сталкивался с таким ниразу. Слабо представляю как это вообще в Делфи сделано (если сделано) ибо знаю что там однопроходный компилятор и нет линковки..
                    Таким ворнингом ну точно компилятор (в моем понимании) ругаться не может, это может сделать в конце линкер..
                    Согласен, полезность даной фичи сомнительна и по умолчанию ее не было и нет начиная от 5-го Билдера. (хотя, возможно такую опцию и можна включить какими то флажками).
                      Цитата ya2500 @
                      в ответ на подобные вопросы я там привёл примеры. но, как выяснилось, они отлавливаются компилятором, если выкрутить уровень параноидальности на максимум.

                      Какие примеры? Я их там не увидел, скажи хоть номер страницы. Я пока читаю - и вижу что ты некомпетентен в вопросе, и пытаешься чего то ляпнуть, но не совсем по делу ляпаешь.
                        Цитата Chow @
                        Слабо представляю как это вообще в Делфи сделано (если сделано) ибо знаю что там однопроходный компилятор и нет линковки..

                        а .dcu файлы зачем тогда нужны?
                        линковка везде есть, просто в delphi(на сколько я знаю) компилятор и линкер объединены в один исполняемый файл.
                          Мля, что только тут не обсуждают :wall:
                            Цитата D_KEY @
                            Мля, что только тут не обсуждают

                            эт да... :)
                            ну а что делать если единственный апологет Ембаркадеро спекся? :lol:
                              Цитата KILLER @
                              Та даже, ладно. Уйдем от DLL, если сложно выразился. Рассмотрим обычный такой себе пример. Я разрабатываю приложение, описываю функции, которые в будущем могу использовать или нет. Оно мне будет ругатся ворнингом что я не юзнул ту или иную функцию ? С чего вдруг компилятор должен мне выдавать предупреждение ? Я не хочу ее использовать, пока не хочу. ну с локальными переменными, которые не юзаюца - то понятно. Толку от них 0, если объявил, но нигде не юзнул. А вот с функциями то зачем такое делать? В чем смысл? Типа, вдруг я забуду юзнуть функцию которую сам же написал? Ну както по лоловски это все выглядит. И еще выставлять это за преимущество - выглядит в двойне по лоловски...

                              1. если функция объявлена в implementation секции unit`a и нигде не используется: в бинарнике exe/dll/bpl её не будет, warning`a тоже не будет
                              2. если функция объявлена в interface секции unit`a и нигде не используется: в бинарнике exe/dll её не будет(в bpl будет, bpl экспортируют все публичные функции), warning`a тоже не будет
                              3. если функция-метод класса, объявлена в private секции класса и нигде не используется, будет warning и в бинарнике её не будет
                                Цитата KILLER @
                                ну с локальными переменными, которые не юзаюца - то понятно. Толку от них 0, если объявил, но нигде не юзнул
                                От них вреда хватает. Если определил, значит была нужна, раз не заюзал... ошибся именем. Всё срослось :o , ошибочное имя случайно совпало с именем в окаймляющей области видимости :blink:
                                Вы всё ещё игнорите такие варнинги? :P Особенно доставляет опен соурс. Они просто обожают забивать на них. Такие, блин, профи все, ага. Сидишь потом и рефакторишь за них, а нигде ли нет ошибок в использовании локальных имён. >:( Повбивалбы.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (245) « Первая ... 39 40 [41] 42 43 ...  244 245


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0663 ]   [ 15 queries used ]   [ Generated: 21.12.25, 11:18 GMT ]