Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft Windows NT/2000 _ Проблемы с FoxPro 2.6 DOS под WinNT 4.0 - помогите, если кто

Автор: ivdi Среда, 26 Сентября 2001, 14:59

Сложная система работы с БД, написанная на фоксе, нестабильно работает под НТ - в некоторых режимах сессия с программой закрывается без всяких предупреждений. А очень надо, чтоб работало!
Пожалуйста, может кто сталкивался с подобной ситуацией, и может подсказать что-нибудь полезное.
Готов предоставить все подробности.
Только не предлагайте выкинуть ДОС - это не шуточки, а реальная система.
Хотя бы подскажите, куда кинуться! Может пропасть труд целого года работы!

Заранее спасибо.

Автор: Vio Среда, 26 Сентября 2001, 16:52

а ты не запускай сразу FOX.exe или FOXR.exe а сначала DOS Session или на ярлычке убери Close on exit, и прочитай из-за чего он вываливается, будем думать. У нас работают приложения и на FoxPro, и на FoxBase, и на Clipper-е, так что НТ не лютый враг ДОСа.

Автор: PilGrim Вторник, 02 Октября 2001, 10:27

На 90 процентов в config.nt стоит параметр files=20 по умолчанию, ставь больше, когда я забываю исправить у меня так же вылетает без слов wink.gif

Автор: ivdi Вторник, 02 Октября 2001, 10:53

цитата:
Из сообщения пользователя PilGrim:
На 90 процентов в config.nt стоит параметр files=20 по умолчанию, ставь больше, когда я забываю исправить у меня так же вылетает без слов wink.gif[/QUOTE]

Если бы все так просто. Эту фишку мы уже победили - стоит теперь files=200 и даже кое-где =254. И кое-где действительно не работало из-за этого. Но не везде.

Автор: Vio Вторник, 02 Октября 2001, 23:31

у нас были проблемы когда Fox запускает из под себя другие DOS задачи. Ему не хватало основной памяти. Решали это запуском Foxr +x а также вместо Авто для основной и XMS памяти на ярлыке (PIF файле)прописывали конкретные цифры (причем не Макс что одно и тоже что и Авто).

Автор: ivdi Вторник, 02 Октября 2001, 12:24

Спасибо за ответы, но проблема не так проста, как хотелось бы.
Вся работа идет из одной программы - здоровый exe-шник, скомпилированный в FoxPro. Точнее, несколько ехе-шников, которые включены в большой один проект. Оболочка - один файл, главный, отдельные режимы - другие, но запускаются все из главного. Сам он автоматом запускается в сессии DOS. (Можно указывать в ярлыке cmd.exe, а можно не указывать - результат одинаковый). Проблемы начинаются на этапе компиляции - под NT компилятор может отработать нормально, а может и вылететь, и когда он как отработает, сказать заранее невозможно. А вот под 95 и 98 ни программа ни компилятор не вылетают НИКОГДА.
Собственно при работе под NT происходит следующее:
при запуске некоторого режима он честно запускается и работает какое-то время, потом, в некий заранее неизвестный момент времени все вылетает - программа прекращает выполнение, окно закрывается (хотя галочка "закрывать окно при выходе" и убрана), никаких сообщений, никаких явных следов в EventViewer. Как будто ее не было запущено вовсе. Или, другой вариант - все отрабатывает до конца без проблем.
Что влияет хоть как-то: если перед запуском соответствующего режима почистить все рабочие базы и удалить все tmp-файлы, то вылетает реже. Если несколько раз подряд запустить этот режим - начинает вылетать чаще.
Совершенно не понятно, на что смотреть, хотя бы...

Автор: Vio Вторник, 02 Октября 2001, 14:51

что-то я не понял, у тебя прроблема с исполнением или с компиляцией? Компилируй до .app. Зачем тебе обязательно нужен .exe? А даже если он .ехе то его все равно можно запускать при помощи foxr.exe. А насчет того что он всегда запускается в ДОС сессии, то это понятно, но я имел в виду чтобы ты открыл ДОС сессию и из нее ручками запустил твое приложение и посмотрел сообщения при ошибках.

Автор: ivdi Среда, 03 Октября 2001, 9:09

Проблема в основном с иполнением - компилировать можно и под чистым ДОСом. Просто в качестве примера проблемы. А почему .Ехе - так уж исторически сложилось, 11 год системе и как начали ее писать, так и делают исполняемые файлы. Я так понял, что все библиотеки нужные и что там еще, из FoxPro, все в этот .ехе файл записано.
Как ты говорил, я так и сделал - вызвал cmd.exe и оттуда в командной строке запустил все это хозяйство. Результат такой же - программа закрывается, сессия ДОС остается, никаких сообщений нет - просто ДОС - экран со стандартным приглашением.
По твоей подсказке начали копать память - там, кажется, что-то есть: программист вывел справочные данные -
Total memory available,
MS-DOS memory available,
Memory in use
Первый параметр всегда много мегабайт, второй, доступная память ДОС, всегда около 400Кбайт, и эта величина почти не зависит от того, что стоит в pif- файле, третий параметр, Используемая память, меняется, то больше то меньше, но все вылеты идут тогда, когда ее величина приближается к значению доступной памяти ДОС. Предположительно при превышении объемом задействованной памяти доступного объема памяти ДОС все и накрывается. Под 95 и 98 такого не происходит - сам видел, что запросто проходят такие, например, значения:
MS-DOS memory available - 422,302
Memory in use - 580,986
Наверно здесь где-то собака и порылась.
Так что спасибо большое за наводку, пока что будем искать в этом направлении, программиста выловим нашего, и т.д. и т.п.
Как что поймем - дальше будем спрашивать smile.gif).

Автор: Anonymous Понедельник, 22 Октября 2001, 10:46

Вот есть у меня на эту тему заметка, но сам не пробовал.

Q. Столкнулся с проблемой работы проложения Fox 2.5 под Win'NT. В процессе работы NT закрывает окно приложения без каких-либо сообщений и комментариев. Hе подскажет ли All, что надо пpавить в registry чтобы не снимались сами по себе фоксовские задачи?

A.В реестр Windows NT нужно внести следующие изменения: В ветви HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWow добавить новый ключ DisableVme со значением 1 (тип данных REG_SZ):
1. Запустите Редактор Реестра Regedt32, перейдите к ветви
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWow
2. Меню "Edit"-->"Add Value".
3. Введите имя DisableVme.
4. Убедитесь, что выбран тип данных "REG_SZ" и нажмите "OK".
5. Введите: 1
6. Перезагрузитесь.
Или используйте следующий REG-файл:

REGEDIT4
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWOW]
"DisableVme"="1"

Автор: ivdi Вторник, 30 Октября 2001, 10:49

А вот с реестром сработало, похоже.
Пока гоняем усиленно - не вылетает.
Спасибо большое.

Автор: Iscandersam Четверг, 29 Мая 2008, 9:44

У меня проблема такого же характера.
Дос программа поддерживает dbf файлы в большем количестве в config.nt всегда прописывал Files=240
и autoexec.bat в корень кидал и всё нормально работает.
Только на одном из ПК установил Win XP всё идет а ошибка осталось как бут то бы он файл config.nt даже не читал.
Что можете посоветовать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)