Задачка

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Есть куча вызовов метода класса со строковым параметром (дебажный вывод).
В релизе (IFNDEF DEBUG) надо чтобы эти вызовы вообще не попадали в экзешник. Обрамлять каждый раз ифдефами - лень.
Надо чтобы ифдефов было немного и их количество не зависело от количества вызовов этого метода.
Что посоветуете, как решить?
Компиляторы - Delphi 6, FPC 2.0
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

смартлинк
-CX -XX
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

А как он работает? Что он выкидывает?
В Delphi 7 не только метод, но даже пустая процедура и, соответственно, ее вызовы сидят в екзешнике.:(
Как бы от этого избавиться?
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

Именно так как ты хочешь - та процедура, что не вызывается в экзешник не попадает. Есть одна тонкость - процесс компиляции требовотелен к ресурсам (к памяти)
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

STAKANOV: Я немного другое хочу. Процедура (а точнее даже метод) вызывается, т.к. я не хочу каждый вызов ифдефами обставлять. Но сама процедура в релизе будет пустой (тоже ифдефами сделано). Мне нужно не только чтобы процедуры не было (это даже не обязательно), а чтобы ее вызовов не было в коде. Их много, они содержат длинные строки и тянут на приличный размер. Какой смысл в вызове пустой процедуры?

Или нужен какой-нибудь другой метод ликвидации вызовов вывода в лог в релизе. Ну кроме обрамления ифдефами каждого вызова.

Неужели нет такого в Паскалях? :unsure:
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

Такого нет :ph34r:
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Странно... С методом еще понятно, но если процедура пуста, то какой смысл ее в екзешнике держать? Вот тебе и смартлинк... :huh:
Guest

Сообщение Guest »

Очень помогает решить этот вопрос текстовый редактор, а именно, его возможность выполнять контекстную замену. :) Поставь перед вызовом // и спи спокойно. Когда надо снять, опять контекстную замену... В чем проблема? Обязательно надо на голову встать?
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Дело в том, что программа, как правило, состоит не из одного модуля. И даже не из одного десятка. И количество их растет. Метод с заменой еще неудобнее, чем с ифдефами.;)
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

выбора нет, только IFDEF
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Ну еще можно попробовать намекнуть разработчикам FPC что пустая процедура в экзешнике имеет мало смысла.;)
Guest

Сообщение Guest »

Mirage писал(а): Дело в том, что программа, как правило, состоит не из одного модуля. И даже не из одного десятка. И количество их растет. Метод с заменой еще неудобнее, чем с ифдефами.;)

Очень много редакторов, которые делают контекстную замену во всем проекте. Например, я пользуюсь JEdit. В винде, помню. был Aditor. Да их просто тьма. Помоему, проблема надумана. Было бы желание. <_<
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Именно. Желания использовать какие-то редакторы (и разбираться с ними), для решения вобщем-то простой задачи нет ни малейшего.
Ответить