Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Компиляция. Проблемы. / 7 сообщений из 7, страница 1 из 1
07.11.2004, 13:56
    #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
07.11.2004, 16:05
    #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
07.11.2004, 16:50
    #32772024
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компиляция. Проблемы.
Большое спасибо. Действительно таким образом проблема решена.
...
Рейтинг: 0 / 0
07.11.2004, 21:05
    #32772083
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компиляция. Проблемы.
KroketБольшое спасибо. Действительно таким образом проблема решена.
OK, no problems any time during which I am not studying Oracle
...
Рейтинг: 0 / 0
11.11.2004, 17:25
    #32778103
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компиляция. Проблемы.
Был бы весьма признателен, если бы кто-нибудь подсказал ответы на мои вопросы №2 и №3, содержащиеся выше.
...
Рейтинг: 0 / 0
11.11.2004, 18:39
    #32778314
Redrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компиляция. Проблемы.
2. Сдаётся мне, что компиляция начисто пересоздаёт fxp. Т.е. не надо удалять.
3. Сдаётся мне, что придётся "просматривать" построчно на предмет наличия "DO xxx.PRG IN ... yyy.PRG", вырезать "xxx.PRG" и компилить...
...
Рейтинг: 0 / 0
12.11.2004, 01:29
    #32778593
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компиляция. Проблемы.
Hi Kroket!

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

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


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