Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergej_S
Member

Откуда: Латвия
Сообщений: 290
Погуглил и понимаю, что вероятность помощи мала, но попробую. Буду краток.

выполняю такую .prg:
DO form aa.scx
DEFINE POPUP PopMenu SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF PopMenu PROMPT 'Klienti' FONT "Arial",14,204
ON SELECTION BAR 1 OF PopMenu DO form aa.scx 
ACTIVATE POPUP PopMenu 


Строка 1 нормально запускает форму. А на такой же строке 5 получаю
Fatal error: Exception code=C0000005 @ 26.08.2017 15:59. Error log file: C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9err.log
	Called from -  ON...  line 5  {d:\vfp90\caetalon_2_3_0_beta\progs\smenu_reftables.prg d:\vfp90\caetalon_2_3_0_beta\progs\smenu_reftables.fxp}


Особенность формы в том, что я там использую свой класс грида и стандартную колонку подменяю (Grid.MemberClass='column_ca', MemberClassLibrary={путь...}).
Как только убираю в классе грида свою кастомную колонку - все запускается супер. Казалось бы, дело в моей колонке, но не из поп-меню форма запускается (см. строку 1).

Кастомный класс колонки примитивен (лишнее обрезал, ошибка осталась)
DEFINE CLASS column_ca as Column 
ENDDEFINE


Спасибо, если у кого есть идеи. Подозреваю, что в таблицу aa.scx кастомная колонка пишет лажу, но без поп-меню она запускается...
VFP 9.0 SP2, Win7x64
26 авг 17, 16:13    [20751146]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Dima T
Member

Откуда:
Сообщений: 15288
Удали русский рантайм vfp9rus.dll. Он кривой. Если не поможет - сделай мини-проект с демонстрацией ошибки и сюда выложи, чтобы было что позапускать.
26 авг 17, 19:42    [20751300]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergej_S
Member

Откуда: Латвия
Сообщений: 290
Удаление vfp9rus.dll не помогло.

Вот простой проект: форма, main.prg и prg класса колонки.

К сообщению приложен файл (FATAL.zip - 3Kb) cкачать
27 авг 17, 00:21    [20751519]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Al_fa
Member

Откуда: Курган
Сообщений: 42
Sergej_S,

VFP 9.0 SP1, Win7x64
все работает нормально
27 авг 17, 20:01    [20752270]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergej_S
Member

Откуда: Латвия
Сообщений: 290
Похоже, дело действительно в dll.

a) Попробовал запустить exe не другом компе. Положил 5 dll из своего "комплекта для клиентов". Все работает.
vfp9r.dll: 2004-12-13 (4 710 400 bytes) v.9.0.0.2412, VFP 9.0 Runtime library
vfp9renu.dll: 2004-12-13 (1 429 504 bytes)
Судя по описанию, это версии старые, еще до сервиспаков.

б) Если же положить к exe vfp9r.dll и vfp9renu.dll из C:\Program Files (x86)\Common Files\microsoft shared\VFP, то получаю вышеуказанную ошибку.
vfp9r.dll: 2007-10-15 (4 734 976 bytes) v.9.0.0.5815, VFP 9.0 SP2 Runtime library
vfp9renu.dll: 2007-10-15 (4 734 976 bytes)

П.С. просьба потестить (особенно c dll от SP2) в силе.
27 авг 17, 21:53    [20752419]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Dima T
Member

Откуда:
Сообщений: 15288
Проблема повторяется VFP 9 SP2 (Visual FoxPro 09.00.0000.5815 for Windows)

В MS писать по этому поводу бесполезно, надо как-то по-другому решать.

Для чего понадобилась замена класса Column ?
28 авг 17, 12:55    [20753336]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Sergej_S,
это старый, известный глюк.
Обход его состоит в замене прямого запуска формы на вызов процедуры с запуском формы.
*ssa*	SET DEFAULT TO D:\VFP90\FATAL
SET PROCEDURE TO ca_classes.prg 

*DO form Form1.scx	&& otsuda zapuskajetsa normalno.

DEFINE POPUP PopMenu SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF PopMenu PROMPT 'Run Form1' 
ON SELECTION BAR 1 OF PopMenu do stub
ACTIVATE POPUP PopMenu 

Procedure Stub
DO form Form1
 
28 авг 17, 13:07    [20753384]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergej_S
Member

Откуда: Латвия
Сообщений: 290
Dima T
Для чего понадобилась замена класса Column ?

Понадобилась переделать проекты в мультиязычные, тряхнул стариной и узнал только сейчас о наличии св-ва MemberClass, Решил заодно улучшить класс грида.

В Header`e добавил несколько свойств. Ну и Textbox грида ранее я вручную удалял и ставил свой класс MyTextboxGrid (там обработка DblClick). Теперь сделал четез MemberClass.

В принципе, я могу отказаться от замены Column, решение есть, просто можно было сделать более феншуйно.

А какова ваше мнение на тему перейти на Service Pack 1?

P.S. Al_fa, Dima_T - спасибо за тестирование.
28 авг 17, 13:18    [20753443]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Sergej_S
А какова ваше мнение на тему перейти на Service Pack 1?
Только SP2 build 7423, то бишь самый последний.
28 авг 17, 13:20    [20753456]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Dima T
Member

Откуда:
Сообщений: 15288
Sergej_S
А какова ваше мнение на тему перейти на Service Pack 1?

Другие проблемы могут возникнуть. SP ведь не просто так делали, а для устранения найденных багов.

Решение уже дали 20753384, затести, SP2 лучше оставить как есть.
28 авг 17, 13:47    [20753580]     Ответить | Цитировать Сообщить модератору
 Re: и снова на арене "Fatal error: Exception code=C0000005"  [new]
Sergej_S
Member

Откуда: Латвия
Сообщений: 290
Sergey Sizov
это старый, известный глюк.

видимо, широко известный в узких кругах, т.к. гуглил и не нашел

Sergey Sizov
Обход его состоит в замене прямого запуска формы на вызов процедуры с запуском формы.

ну ё-маё, и ведь была же мысль попробовать так обойти, но простота этого способа меня смутила. 2 вечера коту под хвост. СПАСИБО!
28 авг 17, 18:12    [20754502]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить