Переключение на Главную Страницу Страницы: 1 2 3 [4]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как найти причину вылета 1С++? (число прочтений - 14981 )
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #45 - 05. Декабря 2012 :: 19:51
Печать  
Полечили операционку на сервере: просто полностью переустановили.

Вылеты 1С++ остались, только теперь в системных сообщениях больше информации: сначала идет сообщение:
Код
Выбрать все
Faulting application 1cv7s.exe, version 7.70.0.27,
faulting module 1CPP.dll, version 3.2.3.20,
fault address 0x0001f845.
 



а следом:
Код
Выбрать все
The application, c:\program files\1cv77\bin\1cv7s.exe,
generated an application error
The error occurred on 12/05/2012 @ 14:33:50.423
The exception generated was c0000005 at address 2401F845
(1cpp!OleDb::CResultDirectAccessProxy::CResultDirectAccessProxy)
 



И в 90% вылетает как я и говорил на "УложитьСписокОбъектов".
Завтра буду испытывать свою функцию вместо "УложитьСписокОбъектов".
По результатам отпишусь.

Если есть какие мысли - буду рад...

Может быть дело в драйвере OLEDB FoxPro?
Что-то их много разных, толком не ясно какой лучше использовать:
1. Есть MSI-установщик драйвера
2. Есть отдельно DLL-ка вроде как из SP2
3. Есть та же DLL-ка, но модифицированная

Какой из них лучше использовать? И как убедиться что скачанный файл - это тот что мне нужен?
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #46 - 05. Декабря 2012 :: 20:10
Печать  
es3000 писал(а) 05. Декабря 2012 :: 19:51:
Завтра буду испытывать свою функцию вместо "УложитьСписокОбъектов".
По результатам отпишусь.


Теперь код, который я написал вместо "УложитьСписокОбъектов" выполняется,
но вылетает следующая команда "ВыполнитьИнструкцию"!

  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #47 - 05. Декабря 2012 :: 20:32
Печать  
Похоже, что глючный драйвер OLEDB.

Сравнил папки C:\Program Files\Common Files\System\OleDB на локальном компьютере (здесь запросы работают нормально) и на сервере.
Оказалось файлы различаются!
Хотя устанавливал с одного и того же дистрибутива!
Дистрибутив VFPOLEDBSetup.msi как я понимаю содержит один файл vfpoledb.dll?
Как такое может быть?
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #48 - 05. Декабря 2012 :: 20:41
Печать  
Похоже понял в чем дело:

На серваке я после установки драйвера подсунул модифицированный вариант vfpoledb.dll.
А на локальном компе я этого не делал, стоит оригинальный vfpoledb.dll.
Значит, этот модифицированный vfpoledb.dll - глючный.
Поработаю пока с оригинальным - посмотрю на его поведение
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Как найти причину вылета 1С++?
Ответ #49 - 07. Декабря 2012 :: 07:44
Печать  
Естественно, как и миллионы юзеров Fox - надо пользоваться последним с официального сайта Microsoft
Там два установщика - с визуальной формой установки(msi) и без, но содержание dll не отличается
Библиотека закрыта, поэтому о корректной правке речи не идет

В свое время Ужас правил dll чтобы пользоваться в модуле документа
Потом выяснилось, что просто по умолчанию Fox блокирует заголовки, и чтобы пользоваться в модуле документа - ничего править в dll не надо - а только в параметре подключения указать не блокировать. Ну или вызвать команду
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Как найти причину вылета 1С++?
Ответ #50 - 07. Декабря 2012 :: 08:26
Печать  
подправил FAQ , так как от hogik были похожие сообщения
http://www.1cpp.ru/forum/YaBB.pl?num=1230361378
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 
ОтправитьПечать