Re: Too many variables | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вот я как раз обратное делал для собираемых exe. В проекте было 2 разных конфиг-файла. Один лежал рядом с pjx, и он НЕ включался в проект (зато использовался при открытии этого самого проекта из файл-менеджера на этапе разработки), а второй лежал в какой-то внутренней папке (обычно называемой Other), был включен в проект именно как include и использовался в рантайме - в нём были чуть другие настройки
------------------ WBR, Igor |
Re: Too many variables | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Ну, это дело вкуса, в нашем деле фантазии, лишь бы прибор правильно работал )
В моем случае config один, и при разработке (отладке по шагам), и при работе в рантайме. Подумалось, что пусть я буду отлаживать именно на том config-е, на каком будет работать реальный EXE. Отлаживаю так: запускаю в IDE фокса, для прохода по шагам, непосредственно собранный EXE-шник, т.е. почти что в реальной среде (это не так, конечно, но после некоторых "пассов" становится почти так). Зачем при отладке и при работе разные config-и не могу придумать сходу. Между нами, лучше бы вообще config-а не было ни фига, он не нужен ;) |
Re: Too many variables | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну вот те самые _COVERAGE, _SCCTEXT и прочие системные переменные обнулить для exe - во-первых в рантайме эти утилиты не нужны (не все! _GENXTAB к примеру может быть нужен, как и 9-ные _REPORT*), во-вторых когда-то я читал что обнуление этих переменных немного ускоряет запуск. Да, то что было актуально 20+ лет назад на всяких Win9x с цельными 128Мб памяти! (где фокс просто "летал" по сравнению с другими "современными" средами разработки, загружавшимися, порой, по паре минут) безнадёжно устарело - но и применял я эти приёмы в те старые времена Потом RESOURCE=OFF - я почти никогда не использовал ресурсный файл для готовых приложений (и всегда во время разработки - при том ещё часто и отдельный для разных проектов). Да, его можно отключить в коде - но тогда он всё равно сначала создастся (пустой), и лишь потом отключится - плюс известные проблемы с "несовпадающим форматом" foxuser между разными версиями фокса (точно не помню между какими именно были расхождения) - если случайно фокс найдёт где-то "неправильный" foxuser то жди беды. Например от FPD проги - а почти на всех машинах где работали FPD программы путь к ним был прописан в системном path, и VFP таки находил "антикварный" foxuser и ругался на то что надо бы его "обновить" - пугая пользователей, и ломая те самые FPD проги по итогу. SCREEN=OFF - я давным давно ещё стал делать в программах сплэш-экраны, и если в конфиге не отключить "главное окно", то сплэш появлялся на фоне белого основного окна, и портилась вся эстетика загрузки. Естественно, для IDE эта настройка не нужна вовсе. Это лишь 3 пункта, по которым имеет смысл держать разные конфиги для IDE и для рантайма. ------------------ WBR, Igor |
Re: Too many variables | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Да, Игорь, как ни печально, но ты как всегда прав! С этим RESOURCE в частности.
Действительно, у меня два config-а. Для IDE (в папке всех моих фоксовых проектов, сюда же указывает рабочая папка, когда я запускаю фокс): DATE=GERMAN CENTURY=ON EXCLUSIV=OFF CODEPAGE=AUTO COLLATE=RUSSIAN CATMAN=off DELETE=OFF RESOURCE = C:\FOXPROJ TMPFILES=C:\TEMP Вкомпилированный в проект (в некоторой папке, в которой нет фоксовых проектных EXE-шников, т.е. не мешает запуску этих EXE-шников): ;ALLOWEXTERNAL = ON SCREEN = OFF TITLE = VFP CODEPAGE=AUTO COLLATE=RUSSIAN RESOURCE = OFF ;TMPFILES=C:\TEMP ;BITMAP = OFF В папке VFP в PrFiles тоже есть config.fpw, и он участвует, но только тогда, когда я просто запускаю установленный VFP без всяких добавок в командное строке и перенастроек рабочей папки. Но я так обычно не делаю. Во всех фоксовых программах (проектах), в первых строках делаю SET RESOURCE OF, по выходу - возвращаю как было (и много чего из SET-ов перенастраиваю при запуске, по выходу возвращаю взад, есть запоминалка SET-ов). Это чтобы запускать проект прямо из IDE (с целью пройти по шагам), но не сломать окружение IDE. > Да, его [RESOURCE] можно отключить в коде - но тогда он всё равно сначала создастся (пустой), и лишь потом отключится Да? Не замечал, или не помню, когда с ним боролся. Но это из-за того, вероятно, что у меня все же два config-а, готовые EXE-шники запускаются c RESOURCE OFF. > SCREEN=OFF Это понятно > Ну вот те самые _COVERAGE, _SCCTEXT и прочие системные переменные обнулить для exe Хз что это за звери. Почитаю ) В целом, я погорячился, сказав, что config не нужен. Нужен, как контейнер, хранилище настроек при запуске готового EXE-шника, но можно было бы решить это дело без config-а, а где-то при построении EXE-шника (как бы считать этот файл заранее вкомпилированным в EXE)... Хотя, если APP, то куда?... Ну, нужен, нужен ) В режиме же IDE есть реестр, или куда там фокс записывает настройки Tools-->Option Извините за оффтоп. Исправлено 3 раз(а). Последнее : of63, 17.05.20 11:05 |
Re: Too many variables | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
COLLATE=RUSSIAN
Мы его включаем только там, где нужен. Чаще нужно без него |
Re: Too many variables | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Мне всегда нужен, т.к. БД с русскими ФИО, названиями. Он и на сравнение строк в программе влияет вроде (?), в нужную мне сторону.
|
Re: Too many variables | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Должно быть как у PINK FLOYD.
|
Re: Too many variables | |
---|---|
akvvohinc Автор Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Создастся он только в том случае, если в Config явно или по умолчанию стоит RESOURCE = ON Если в Config стоит RESOURCE = OFF то foxuser не создастся вообще - ни при запуске, ни позже. И если ресурсного файла после запуска Фокса нет физически (не было в папке и он был отключен в конфиге), то позже по SET RESOURCE он уже не создастся. Цитата:Для VFP они отличались типом одного поля - NAME (стал Memo, в досе был Char). Достаточно было поменять тип этого поля, чтобы запрос на конвертацию не появлялся, и файл ресурсов становился рабочим. А вот для FPD все было намного хуже - помимо NAME еще и "чужой" формат Memo-полей, конвертер "на будущее" написать, естественно, не могли, и ресурсный файл просто создавался заново. Никогда не слышал, чтобы Фокс искал foxuser.dbf по каким бы то ни было путям: - либо по явно указанному имени в RESOURCE конфига или SET RESOURCE программы; - либо в папке запускаемого EXE. PS Про поиск по путям понял. Будет искать, если вместо простого SET RESOURCE ON зачем-то указывать SET RESOURCE TO foxuser.dbf то есть стандартное имя без полного пути. Если же стандартное имя без полного пути не писать (а при единственном ресурсе вроде в этом нет смысла), то и искать ресурсный файл по PATH фокс не должен. В общем, если разработчику без разницы, какой foxuser будет найден, то он может писать имя, не указывая полный путь, и попадать в описанную ситуацию. Иначе достаточно не пользоваться командой SET RESOURCE TO или указывать полный путь к ресурсному файлу, "отменяя" поиск "по путям". То есть искать foxuser абы где, если в указанном месте его нет, Фокс не должен, а значит, всем управляет только разработчик, и этой проблемы нет. Единственное неудобство - полный путь может быть неизвестен при запуске (если разраб хочет, чтобы брался ресурсный файл текущей папки и это не папка EXE), и тогда его не удастся указать в Config. Но тогда в Config он отключается, а в программе узнается текущая папка и ресурс подключается с указанием полного пути. Исправлено 9 раз(а). Последнее : akvvohinc, 17.05.20 19:41 |
Re: Too many variables | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() мтк, нормально заморочили голову девченке ТС? )
|
Re: Too many variables | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Речь про случай когда конфига нет вообще - тогда ресурсный файл создаётся, т.к. по умолчанию действительно работает установка ON. Давно было, и уж что там было или не было в конфигах прописано я не помню, но точно помню что проблема имела место быть. ------------------ WBR, Igor |
Re: Too many variables | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Искал и находил ранее кем-то созданный, спрятанный. И эту проблему у нас помнят. Когда делали объезды с установкой программы, это портило нервы |
Re: Too many variables | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Аналогично, при старте проги вызывалось окно GetFile.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Too many variables | |
---|---|
_vit Сообщений: 5176 Дата регистрации: 29.07.2002 |
Совет дня.;)
Пользуйтесь утилитой Procmon от Русиновича. docs.microsoft.com И будете знать, какие файлы фокс (и не только он) открывает, где ищет и почему не может открыть даже если нашел. Это был первый инструмент, который я использовал, когда на клиентской машине (да и на своей тоже) вдруг фокс вел себя не так. Исправлено 1 раз(а). Последнее : _vit, 20.05.20 14:05 |
Re: Too many variables | |
---|---|
akvvohinc Автор Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Я же написал в PS, при каких условиях этот поиск будет происходить - если указать имя файла, не указывая полный путь к нему. Так что разраб сам решает, нужен ли ему такой поиск или нет. А теперь не вызывается? Покажи, в каком случае автоматически вызывается Getfile. Хотя какая уж тут аналогия? Аналогия с чем? Исправлено 1 раз(а). Последнее : akvvohinc, 20.05.20 15:10 |
Re: Too many variables | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ещё раз: значения SET RESO ON и SET RESO TO foxuser.dbf это значения по умолчанию, они действуют если нет никакого конфига вообще. И именно поэтому конфиг НУЖЕН для избежания конфликта с "левыми" foxuser.dbf расположенными где-то в системном %PATH%. Хотя-бы подавить автооткрытие, чтобы уже в коде программы иметь возможность задать путь к "правильному" ресурсному файлу, и лишь затем "включить" его. Нет ничего проще чем скомпилировать широко известный эмулятор командного окна фокса (конечно же не включая в него конфиг и не размещая его рядом с exe), и запускать, проверяя где он создаст foxuser, или, что горадо хуже, где он его найдёт и откроет. ------------------ WBR, Igor |
Re: Too many variables | |
---|---|
akvvohinc Автор Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Да, похоже разобрался, что у меня было не так. Я проверял не на EXE, созданном в Фоксе, а на самом vfp.exe. А при этом помимо конфига есть еще одно место, где может быть прописан путь к ресурсному файлу: Tools -> Options -> File Locations -> Resource File Вот там у меня и был прописан путь, по которому автоматически создавался foxuser при отсутствии конфига (или при отсутствии имени ресурсного файла в конфиге) - в папке самого Фокса. Исправлено 2 раз(а). Последнее : akvvohinc, 21.05.20 01:51 |
© 2000-2024 Fox Club  |