powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Компиляция. Проблемы.
7 сообщений из 7, страница 1 из 1
Компиляция. Проблемы.
    #32771964
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа(exe-файл написана в VFP 6.0) в рантайме должна компилировать в FXP файл, какой-либо внешний файл например test.prg содержащий исходный текст на VFP 6.0. Для выполнения этой задачи в приложении написан такой такой код:

if file("c:\test.fxp") then && Если файл test.fxp уже существует
erase("c:\test.fxp") && то удаляем его
endif
compile c:\test.prg && компилируем prg файл, получаем fxp файл
do c:\test.fxp && запускаем fxp

Все работает прекрасно, и можно несколько раз запускать внешний файл test.prg на выполнение, менять исходник и вновь перезапускать не выходя их приложения, НО только в том случае, если в файле не используются объекты. А если в файле test.prg будет хотя бы такой код:

MyObject = CreateObject("MyClass")
release MyObject

define class MyClass As Custom
enddefine
то такой файл в перый раз будет скомпилирован и выполниться успешно, а при втором запуске будет выдана ошибка, невозможно удалить файл, так ка него имеются ссылки.
Подскажите пожалуйста:
1) Где на fxp файл остаются ссылки(причем как видно только при создании объектов) и как их можно ликвидировать?
2) Нужно ли удалять каждый раз fxp файл перед компиляцией, после изменения prg файла или есть какие-то директивы по принудительному изменению fxp, после изменения prg файла?
3) Если в test.prg файле будет к примеру такой код:
do MyProc in MyLib.prg
как можно компилируя test.prg, перекомпилировать автоматом программно и MyLib.prg, т.е. и на него обновить fxp файл, в случае если он изменился.
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32772011
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так, но проверял я это на VFP 8.0:

Код: plaintext
1.
2.
3.
4.
5.
6.
MyObject = CreateObject("MyClass")

release MyObject
clear CLASS MyClass 

define class MyClass As Custom
enddefine
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32772024
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо. Действительно таким образом проблема решена.
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32772083
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KroketБольшое спасибо. Действительно таким образом проблема решена.
OK, no problems any time during which I am not studying Oracle
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32778103
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был бы весьма признателен, если бы кто-нибудь подсказал ответы на мои вопросы №2 и №3, содержащиеся выше.
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32778314
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Сдаётся мне, что компиляция начисто пересоздаёт fxp. Т.е. не надо удалять.
3. Сдаётся мне, что придётся "просматривать" построчно на предмет наличия "DO xxx.PRG IN ... yyy.PRG", вырезать "xxx.PRG" и компилить...
...
Рейтинг: 0 / 0
Компиляция. Проблемы.
    #32778593
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Kroket!

2) Удаляй - не удаляй разницы нету. Если он заблокирован - ты не удалишь его
и не перекомпилируешь. Если НЕ заблокирован, то COMPILE заменит.
3) Нету таких средств. В среде он будет перекомпилировать при ряде условий
(типа дата-время fxp меньше чем у prg). В рантайме - нет.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Компиляция. Проблемы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]