:: Visual Foxpro, Foxpro for DOS
MSComctlLib TreeCtrl2 & Win10
Ihor Shaniuk
Автор

Сообщений: 1
Дата регистрации: 25.07.2021
Приложение, которое нормально работало на Win7, перестало работать после переноса на Win10.
Очевидно, проблема в использовании TreeCotrl библиотеки MSCOMCTL в одной из форм для отображения древовидной структуры.
Может кто-нибудь подсказать, как восстановить работоспособность под десяткой?

UPD.
Проблема решилась следующим образом:
1. Из Win7, из папки Windows\sysWOW64 была взят файл mscomctl.ocx и скопирован в соответствующую папку на машине с Win10.
2. Далее, в Win10 в папке Windows\sysWOW64 была открыта консоль с правами администратора, и OCX был зарегистрирован командой
> regsvr32 mscomctl.ocx



Исправлено 1 раз(а). Последнее : Ihor Shaniuk, 25.07.21 16:29
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Sergey_K

Сообщений: 15
Дата регистрации: 07.05.2018
Добрый день, уважаемые коллеги.
Есть возможность использования mscomctl.ocx (или замена) для для версии - VFP Advanced (x64)?
Поделитесь опытом.
Спасибо.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
Sergey_K
Добрый день, уважаемые коллеги.
Есть возможность использования mscomctl.ocx (или замена) для для версии - VFP Advanced (x64)?
Поделитесь опытом.
Спасибо.
вроде из бесплатного нет ничего


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Вот здесь написано, как можно использовать mscomctl.ocx на 64-х разрядных системах. Правда сам не проверял...
all-freeload.net


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Каратаев
Вот здесь написано, как можно использовать mscomctl.ocx на 64-х разрядных системах. Правда сам не проверял...
all-freeload.net
Фигня там написана. Без разницы, где валяется .ocx. В момент регистрации в реестре прописывается путь к конкретному экземпляру библиотеки (к тому, который указан в параметрах при регистрации).

PS. И да, более 64-разрядной библиотека не становится от перемещения по папкам.



Исправлено 1 раз(а). Последнее : pasha_usue, 28.07.21 17:17
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
pasha_usue
Фигня там написана. Без разницы, где валяется .ocx.
Суть же не в этом... Главное, что её можно использовать в VFP Advanced (x64)
Или я чего-то не понял?


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Технология 64-битных ОС пока что еще разрешает использование 32-битных библиотек и плагинов (хотя уже ходят слухи, что однажды таки уберут их поддержку, как убрали поддержку 16-битных).
Естественно, такое использование возможно только с известными ограничениями на использование памяти. И связанными с этим несколько большими тормозами в работе, нежели использование их 64-битных аналогов.
Это правило действует для подавляющего числа 64-битных приложений. За редкими исключениями там, где важно именно количество используемой памяти.
Поэтому мне кажется особых проблем в VFP Advanced (x64) с использованием 32-битных библиотек тоже не должно быть. Разве что это будет работать возможно медленнее, чем работали бы их 64-битные аналоги. Если таковые есть.
Проверить все это в принципе легко - любому желающему. Просто у меня например сейчас нет ни необходимости ни желания чем-то таким заниматься.
Немного непонятно, почему автор вопроса не попробовал сам все это проделать и написать о результатах тестирования, положительных или отрицательных.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 2 раз(а). Последнее : Crispy, 29.07.21 09:18
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
Каратаев
pasha_usue
Фигня там написана. Без разницы, где валяется .ocx.
Суть же не в этом... Главное, что её можно использовать в VFP Advanced (x64)
Или я чего-то не понял?
В VFP Advanced (x64) mscomctl.ocx возвращает ошибку регистрации класса. Так что использовать никак не получится.


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Каратаев
pasha_usue
Фигня там написана. Без разницы, где валяется .ocx.
Суть же не в этом... Главное, что её можно использовать в VFP Advanced (x64)
Или я чего-то не понял?
Нельзя спроецировать 32-разрядную dll в 64-разрядный процесс. У них тупо разные дескрипторы памяти.

Причём обходной манёвр он прямо на поверхности лежит, надо поднять ещё один 32-х разрядный процесс и наладить взаимодействие между двумя процессами разной разрядности. Например, COM-объекты 32х можно с небольшими танцами подключить к приложению 64х.

Но для ActiveX я пока такого не видел.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Sergey_K

Сообщений: 15
Дата регистрации: 07.05.2018
Спасибо большое за участие.
Значит нужно заканчивать использовать mscomctl.ocx.
Ещё раз спасибо.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
pasha_usue
Нельзя спроецировать 32-разрядную dll в 64-разрядный процесс.

Этого и не надо. VFP Advanced (x64) по любому запускает 32-х разрядный фоксовский рантайм. Из него полключиться к 32-х разрядному OCX не должно представлять никаких проблем. Заслуга Чена именно в том, что он сделал возможным подключение к 64-х разрядным OCX.
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Sergey_K

Сообщений: 15
Дата регистрации: 07.05.2018
Увы, пока ничего не получается. Вот ошибка -
Microsoft Visual FoxPro Advanced (x64)
OK
Cancel
OLE error code 0x80040154: Class not registered. OLE object is being ignored. Record number 21.

В 21 строке в поле Ole2 значение -
OLEObject = C:\Windows\SysWOW64\mscomctl.ocx
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
ocx зарегистрирован в реестре? regsvr32 нужно из консоли запущенной "As Administrator" выполнять. Можно проверить в реестре - есть записи с соответствующим ProgId (HKEY_CLASSES_ROOT\MSComctlLib.TreeCtrl) и правильно ли соответствующая CLSID ветка (HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{C74190B6-8589-11D1-B16A-00C0F0283628}\InprocServer32) на эту ocx указывает.

Путь в scx файле не существенен - он, вероятно, используется во время разработки, но не во время выполнения (т.к. на машине клиента путь к ocx, конечно же, может отличаться от такового на машине разработчика).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: MSComctlLib TreeCtrl2 & Win10
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
Igor Korolyov
ocx зарегистрирован в реестре? regsvr32 нужно из консоли запущенной "As Administrator" выполнять. Можно проверить в реестре - есть записи с соответствующим ProgId (HKEY_CLASSES_ROOT\MSComctlLib.TreeCtrl) и правильно ли соответствующая CLSID ветка (HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{C74190B6-8589-11D1-B16A-00C0F0283628}\InprocServer32) на эту ocx указывает.
Путь в scx файле не существенен - он, вероятно, используется во время разработки, но не во время выполнения (т.к. на машине клиента путь к ocx, конечно же, может отличаться от такового на машине разработчика).
\
регать либы из среды разработки вместе с приложением.... уже лет десять как надо. MS давно уже свое перелопатил в офисных и прочих пакетах. Наш Runtime и OCX таскаем с собой.


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика