|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
Хочу вклеить в App время компиляции. Для теста написал 2 модуля: 1-й: tst1.prg Код: vbnet 1. 2. 3. 4. 5.
2-й: Код: vbnet 1. 2. 3.
Проект test2 содержит только модуль tst1.prg По задумке при перестроении проекта должно вклеиться время компиляции. При прямом запуске покажет, что режим отладки. Однако, при запуске test2.App как при запуске tst1.prg пишет "Не определено". как-то я не понимаю этот препроцессор... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 12:43 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
glamis, а вы временем компиляции что называете? Или думаете, что Build все файлы автоматом перекомпилирует? И с чего решили, что define перед Build хоть как-то виден при компиляции prg, которая была до build? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:58 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
glamis, предлагаю вариант без плясок с бубном. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 16:45 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
prg - это исходник. Текст, написанный так, чтобы его понял разработчик. Но само приложение работает не с исходником, а с "переводом" этого самого исходника в некий "машинный" код. Этот "перевод" выполняет операция, называемая "компиляция" Директивы препроцессора - это то, что надо сделать непосредственно перед компиляцией. Т.е. перед тем, как начать процедуру компиляции вот все эти директивы выполняются и происходит замена соответствующих кусков кода Ну, чтобы было понятно, это вы даете инструкцию переводчику о том, какие куски текста и в какой последовательности надо переводить с "человеческого" на "машинный". "Здесь - читаем, здесь - не читаем, а здесь мы рыбу заворачивали" (с) Но после "перевода" в итоговом, откомпилированном коде (который, собственно, и будет исполняться) уже никаких директив препроцессора нет. Там уже результат замены Соответственно, если не выполняется перекомпиляция кода, то и директивы препроцессора не работают. Поскольку это просто "правила перевода", а не сам "текст". Но если перевод уже был выполнен ранее, то он останется в том состоянии как был. Ничего не изменится Надо использовать галку Recompile All, чтобы повторно скомпилировать то, что ранее уже было скомпилировано. Заново из prg сделать fxp с учетом текущего состояния директив препроцессора ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 22:06 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
ВладимирМ, Вот я и рассчитывал, что если вызову компиляцию из программы, то можно будет использовать #ifdef для модификации кода- если определено, то один набор команд, если нет - другой. И обратите внимание-я принудительно компилирую код перед вызовом build. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 09:26 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
glamis И обратите внимание-я принудительно компилирую код перед вызовом build. Код: sql 1.
виден/работает при компиляции Код: sql 1.
? Вариант решения без танцев с бубном я уже предложил. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:26 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
Sergey Sizov, Ну, решение я нашел. И константу вклеил. Несколько коряво получилось. Но получилось. Вариант вычисления через adir мне не нравится - может оказаться, что дата или время файла поменяются. В теории это возможно. Но очень красиво было бы сделать через препроц. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 15:55 |
|
Помогите с препроцессором
|
|||
---|---|---|---|
#18+
glamis И обратите внимание-я принудительно компилирую код перед вызовом build. 1. Директивый прекомпилятора действуют только в том файле, где они были определены Если Ваши модули - это два отдельных файла, то константа, определенная в одном файле не будет видна в другом 2. Команду Compile имеет смысл применять только к свободно лежащим файлам. Т.е. модуль 1 не должен быть включен внутрь APP ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 15:52 |
|
|
start [/forum/topic.php?fid=41&fpage=4&tid=1581557]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
223ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 596ms |
0 / 0 |