Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) xp embedded + citix + formex = вылет (число прочтений - 14321 )
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
xp embedded + citix + formex = вылет
13. Ноября 2010 :: 12:37
Печать  
Здравствуйте
столкнулась с такой неприятностью - 1с вылетает с ошибкой в момент инициализации компоненты на терминальном сервере citrix под windows xp embedded и windows ce Печаль
На обычных машинках (windows xp, windows 7) с тем же citrix - нормально запускается...
Может кто сталкивался и сможет подсказать как починить?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #1 - 16. Ноября 2010 :: 07:14
Печать  
На ЗагрузитьВнешнююКомпоненту() вылетает?
  

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #2 - 16. Ноября 2010 :: 07:36
Печать  
АЛьФ писал(а) 16. Ноября 2010 :: 07:14:
На ЗагрузитьВнешнююКомпоненту() вылетает?
Да.
Пришлось сделать настройку у пользователей работающих с терминалов, чтобы внешняя компонента не загружалась Печаль
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #3 - 16. Ноября 2010 :: 09:36
Печать  
Есть возможность погонять в этих условиях тестовую сборку?
  

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #4 - 16. Ноября 2010 :: 09:44
Печать  
АЛьФ писал(а) 16. Ноября 2010 :: 09:36:
Есть возможность погонять в этих условиях тестовую сборку?

мммм... вполне - есть отладочные БД
P.S. где брать?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #5 - 16. Ноября 2010 :: 09:49
Печать  
Подготовлю и в эту ветку выложу чуть позже.
  

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #6 - 16. Ноября 2010 :: 09:49
Печать  
ОК, Жду
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #7 - 16. Ноября 2010 :: 10:09
Печать  
Вот. Интересует что именно происходит при загрузке.
  

fe_test_007.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #8 - 16. Ноября 2010 :: 10:56
Печать  
На терминале с WinCE все отработало, прошло все 5 поинтов, конфа загрузилась и компонента работает
Чуть попозже отпишу как будет с WinXPEm
  
Наверх
 
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #9 - 16. Ноября 2010 :: 11:22
Печать  
Увы, на WinXPEm вылетело после 4 поинта....
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #10 - 16. Ноября 2010 :: 11:25
Печать  
Отлично. Двигаемся дальше... Еще одна тестовая.
  

fe_test_008.zip ( 239 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #11 - 16. Ноября 2010 :: 11:37
Печать  
Вылетела после 6 поинта
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #12 - 16. Ноября 2010 :: 11:47
Печать  
Замечательно. Пробуем еще вариант.
  

fe_test_009.zip ( 239 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #13 - 16. Ноября 2010 :: 12:03
Печать  
В этот раз вылетела не доходя ни до одного из поинтов
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #14 - 16. Ноября 2010 :: 12:04
Печать  
Зараза... Ведь не должна была вылететь, должна была сообщение об ошибке выдать Печаль
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #15 - 16. Ноября 2010 :: 12:08
Печать  
А так?
  

fe_test_010.zip ( 239 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #16 - 16. Ноября 2010 :: 12:10
Печать  
Увы Печаль
после второго поинта
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #17 - 16. Ноября 2010 :: 12:24
Печать  
А если мы ее так?
  

fe_test_011.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #18 - 16. Ноября 2010 :: 12:36
Печать  
Вылетела до каких либо поинтов
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #19 - 16. Ноября 2010 :: 12:46
Печать  
Еще попытка.
  

fe_test_012.zip ( 239 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #20 - 16. Ноября 2010 :: 12:49
Печать  
После четвертого
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #21 - 16. Ноября 2010 :: 13:10
Печать  
Хм... Падает на строке:
Код
Выбрать все
::SetWindowLong(pMainWindow->GetSafeHwnd(),GWL_WNDPROC,(LONG)newMainWndProc); 


Но почему-то try это падение не отлавливает. А по запросу версии платформы выдает, что "все путем, стоит полная винда".
Попробую поискать про особенности работы этой функции.
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #22 - 16. Ноября 2010 :: 14:04
Печать  
Вот родил нечто.
  

fe_test_013.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #23 - 16. Ноября 2010 :: 14:16
Печать  
после второго поинта
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #24 - 16. Ноября 2010 :: 14:31
Печать  
Еще...
  

fe_test_014.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #25 - 16. Ноября 2010 :: 14:33
Печать  
Чёрт Печаль после четвёртого
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #26 - 16. Ноября 2010 :: 14:56
Печать  
Еще...
  

fe_test_015.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #27 - 16. Ноября 2010 :: 15:01
Печать  
там же...
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #28 - 16. Ноября 2010 :: 15:10
Печать  
Вот еще. Только с этой сборкой ОЧЕНЬ осторожно! Возможно подвисание сессии.
  

fe_test_016.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #29 - 16. Ноября 2010 :: 15:22
Печать  
То-же самое, после 4 точки

На всякий случай, хотя вряд ли поможет... Выскакивает две ошибки:

первая ошибка:
Ошибка приложения 1cv7s.exe, версия 7.70.0.27, модуль mfc42.dll, версия 6.6.8063.0, адрес 0x000d21ff.

вторая:
Ошибка приложения 1cv7s.exe, версия 7.70.0.27, модуль 1cv7s.exe, версия 7.70.0.27, адрес 0x00005325.

  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #30 - 16. Ноября 2010 :: 15:38
Печать  
Все... Я пас... Могу только предложить сборку, где этот код вообще отключен. Не будет работать установка вида курсора.
  

fe_test_017.zip ( 238 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: xp embedded + citix + formex = вылет
Ответ #31 - 17. Ноября 2010 :: 07:05
Печать  
Ну пусть будет так, я всё равно не пользуюсь этой возможностью. Главное что теперь всё работает и в WinCE и в WinXPEm
  
Наверх
 
IP записан
 
mehfk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 22. Августа 2011
Re: xp embedded + citix + formex = вылет
Ответ #32 - 06. Сентября 2011 :: 06:34
Печать  
Доброго времени суток всем!
Столкнулся с данной проблемой, причем перепробовал разные версии 1с++ и formex и их комбинации (вплоть до ранней 1.8.1.6). Ошибка, похоже, тянется из ранних версий. В версии, которая выложена в топике (с отключенной установкой курсоров), вылет не происходит.

Установка оконной функции происходит здесь  (из исходников 1С++версии 2.0.3.7)

hMainWndProc = ::GetWindowLong(pMainWindow->GetSafeHwnd(),GWL_WNDPROC);
::SetWindowLong(pMainWindow->GetSafeHwnd(),GWL_WNDPROC,(LONG)newMainWndProc);

На самом деле вылет происходит в оконной функции.

LRESULT CALLBACK newMainWndProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
       if(nMessage == WM_SETCURSOR)
       {
               if(FormEx_OnSetCursor(LOWORD(lParam))) return 1;
       }
       return ((WNDPROC)hMainWndProc)(hWnd, nMessage, wParam, lParam);
}

Возьму на себя смелость заметить, что вот этот вызов не совсем корректен
return ((WNDPROC)hMainWndProc)(hWnd, nMessage, wParam, lParam);
согласно MSDN пользоваться в данном случае необходимо функцией CallWindowProc, т.е. в конечном итоге должно получиться что-то вроде
return CallWindowProc((WNDPROC)hMainWndProc, hWnd, nMessage, wParam, lParam);

Для проверки своих мыслей сделал следующее:
отредактировал таблицу импорта - добавил функцию CallWindowProcA
далее взял hiew и немного переписал данную функцию

исходный вариант выглядит так

.text:1FA29C50 sub_1FA29C50    proc near               ; DATA XREF: sub_1FA2A000:loc_1FA2A34D
o
.text:1FA29C50
.text:1FA29C50 arg_0           = dword ptr  4
.text:1FA29C50 arg_4           = dword ptr  8
.text:1FA29C50 arg_8           = dword ptr  0Ch
.text:1FA29C50 arg_C           = dword ptr  10h
.text:1FA29C50
.text:1FA29C50                 push    esi
.text:1FA29C51                 mov     esi, [esp+4+arg_4]
.text:1FA29C55                 push    edi
.text:1FA29C56                 mov     edi, [esp+8+arg_C]
.text:1FA29C5A                 cmp     esi, 20h
.text:1FA29C5D                 jnz     short loc_1FA29C76
.text:1FA29C5F                 push    edi
.text:1FA29C60                 call    sub_1FA29800
.text:1FA29C65                 add     esp, 4
.text:1FA29C68                 test    eax, eax
.text:1FA29C6A                 jz      short loc_1FA29C76
.text:1FA29C6C                 pop     edi
.text:1FA29C6D                 mov     eax, 1
.text:1FA29C72                 pop     esi
.text:1FA29C73                 retn    10h
.text:1FA29C76 ; ---------------------------------------------------------------------------
.text:1FA29C76
.text:1FA29C76 loc_1FA29C76:                           ; CODE XREF: sub_1FA29C50+D
j
.text:1FA29C76                                         ; sub_1FA29C50+1A
j
.text:1FA29C76                 mov     eax, [esp+8+arg_8]
.text:1FA29C7A                 mov     ecx, [esp+8+arg_0]
.text:1FA29C7E                 push    edi
.text:1FA29C7F                 push    eax
.text:1FA29C80                 push    esi
.text:1FA29C81                 push    ecx
.text:1FA29C82                 call    dword_1FA7BBD4
.text:1FA29C88                 pop     edi
.text:1FA29C89                 pop     esi
.text:1FA29C8A                 retn    10h
.text:1FA29C8A sub_1FA29C50    endp

С учетом вышесказанного, сделал так

.text:1FA29C50 sub_1FA29C50    proc near               ; DATA XREF: sub_1FA2A000:loc_1FA2A34D
o
.text:1FA29C50
.text:1FA29C50 hWnd            = dword ptr  4
.text:1FA29C50 Msg             = dword ptr  8
.text:1FA29C50 wParam          = dword ptr  0Ch
.text:1FA29C50 lParam          = dword ptr  10h
.text:1FA29C50
.text:1FA29C50                 push    esi
.text:1FA29C51                 mov     esi, [esp+4+Msg]
.text:1FA29C55                 push    edi
.text:1FA29C56                 mov     edi, [esp+8+lParam]
.text:1FA29C5A                 cmp     esi, 20h
.text:1FA29C5D                 jnz     short loc_1FA29C71
.text:1FA29C5F                 push    edi
.text:1FA29C60                 call    sub_1FA29800
.text:1FA29C65                 add     esp, 4
.text:1FA29C68                 test    eax, eax
.text:1FA29C6A                 jz      short loc_1FA29C71
.text:1FA29C6C                 xor     eax, eax
.text:1FA29C6E                 inc     eax
.text:1FA29C6F                 jmp     short loc_1FA29C89
.text:1FA29C71 ; ---------------------------------------------------------------------------
.text:1FA29C71
.text:1FA29C71 loc_1FA29C71:                           ; CODE XREF: sub_1FA29C50+D
j
.text:1FA29C71                                         ; sub_1FA29C50+1A
j
.text:1FA29C71                 mov     eax, [esp+8+wParam]
.text:1FA29C75                 mov     ecx, [esp+8+hWnd]
.text:1FA29C79                 push    edi             ; lParam
.text:1FA29C7A                 push    eax             ; wParam
.text:1FA29C7B                 push    esi             ; Msg
.text:1FA29C7C                 push    ecx             ; hWnd
.text:1FA29C7D                 mov     eax, lpPrevWndFunc
.text:1FA29C82                 push    eax             ; lpPrevWndFunc
.text:1FA29C83                 call    ds:CallWindowProcA
.text:1FA29C89
.text:1FA29C89 loc_1FA29C89:                           ; CODE XREF: sub_1FA29C50+1F
j
.text:1FA29C89                 pop     edi
.text:1FA29C8A                 pop     esi
.text:1FA29C8B                 retn    10h
.text:1FA29C8B sub_1FA29C50    endp
  
Наверх
 
IP записан
 
mehfk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 22. Августа 2011
Re: xp embedded + citix + formex = вылет
Ответ #33 - 06. Сентября 2011 :: 06:38
Печать  
Клиент используется цитриксовский под linux
Аналогичный код используется еще в нескольких местах, но я исправил только в одном месте.
Надеюсь, АЛьФ исправит данную ошибку.
Если АЛьФ не возражает, могу здесь выложить полученную в результате опытов библиотеку.
Спасибо.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #34 - 06. Сентября 2011 :: 08:54
Печать  
Сейчас попробую подправить.
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #35 - 06. Сентября 2011 :: 09:11
Печать  
Тестируем...
  

FormEx.zip ( 231 KB | Загрузки )

FormEx developer
Наверх
www  
IP записан
 
mehfk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 22. Августа 2011
Re: xp embedded + citix + formex = вылет
Ответ #36 - 06. Сентября 2011 :: 09:23
Печать  
Тестовая конфа запускается. В окне "Помощь->О программе" вкладки нет.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #37 - 06. Сентября 2011 :: 09:46
Печать  
mehfk писал(а) 06. Сентября 2011 :: 09:23:
Тестовая конфа запускается. В окне "Помощь->О программе" вкладки нет.


Эм... Это я отрубал по просьбе это окно, а вернуть забыл. Надеюсь, не критично его наличие?
  

FormEx developer
Наверх
www  
IP записан
 
mehfk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 22. Августа 2011
Re: xp embedded + citix + formex = вылет
Ответ #38 - 06. Сентября 2011 :: 10:03
Печать  
В приницпе не критично. Измененный код войдет в стабильный релиз?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: xp embedded + citix + formex = вылет
Ответ #39 - 06. Сентября 2011 :: 10:09
Печать  
mehfk писал(а) 06. Сентября 2011 :: 10:03:
В приницпе не критично. Измененный код войдет в стабильный релиз?


Я сейчас практически не занимаюсь FormEx. Только по таким вот запросам мелочи правлю. Так что "стабильный релиз" - это из прошедших уже времен...
  

FormEx developer
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать