Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ПОМОГИТЕ 2 !!!

13K
13 марта 2006 года
dimon7k
18 / / 02.03.2006
Ура! Если эти строки читает HarryAxe, то в очередной раз спасибо! Сделал все как ты написал - проблем нет, система не глючит. :)

Но, ВСЕ ТАКИ, подскажите как обеспечивать работоспособность прог, написанных под ХР-шкой на копмах с младшими версиями винды (в моем случае-98 винда).

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

Дистрибутив, созданный P&D Wizard, не устанавливается (выдает диалоговое окно о необходимости заменить ряд системных файлов и на дальнейшие действия не реагирует). Дистрибутив, созданный Setup Factory прогу устанавливает, но при этом меняет ряд системных библиотек 98 винды на ХР-шные библиотеки, после чего вообще возникают проблемы уже с самой системой (в частности из-за замены файла oleaut32.dll на соответствующий ХР-шный файл).

Пробовал взять из пакета, созданного P&D Wizard, папку Support, перенести её на комп с 98 виндой и из этой папки запустить екзешник проекта. Главная форма проги запускается. Доступен также ряд функций проги, но как только я пытаюсь загрузить в PictureBox соответствующей формы какое-либо изображение, возникает ошибка Run-time error 50003.

Не подскажете, с чем это связано?

И, снова повторяюсь, как правильно формировать совокупность необходимых файлов дистрибутива, чтобы обеспечить нормальную работу программ под целевыми операционными системами?

Заранее благодарю.

Дима.
534
14 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by dimon7k
Пробовал взять из пакета, созданного P&D Wizard, папку Support, перенести её на комп с 98 виндой и из этой папки запустить екзешник проекта. Главная форма проги запускается. Доступен также ряд функций проги, но как только я пытаюсь загрузить в PictureBox соответствующей формы какое-либо изображение, возникает ошибка Run-time error 50003.

Не подскажете, с чем это связано?

И, снова повторяюсь, как правильно формировать совокупность необходимых файлов дистрибутива, чтобы обеспечить нормальную работу программ под целевыми операционными системами?

В общем, проблема-то весьма актуальна. Я на своём опыте не раз сталкивался с подобной проблемой: к примеру, делаешь свой ActiveX control, компилируешь, создаёшь приложение, подвязываешь контрол к нему. Компилируешь - всё ок. Стоит просто перекомпилировать контрол, и приложение запускаться пересаёт до тех пор, пока не откомпилируешь заново саму программу. Дело здесь в том, что на этапе компиляции в программе созраняются версии и даты создания всех dll, которые к ней подвязаны. И если версия в системе не совпадает c требуемой, то приложение запуститься откажется. Точный совет как здесь быть я дать не смогу, 98-я винда уже давно как снесена с моей машины, могу лишь предположить...
1. В свойствах проекта на первой вкладке есть крыжик "Update ActiveX controls", который усановлен по умолчанию. Попробуй снять его и перекомпилировать проект. Непосредственно с ActiveX должно прокатить.
2. Если будут возникать ошибки, связанные с OLE функциями и классами (напр. LoadPicture(), IPictureDisp и т. п.), попробуй создавать их динамически в период выполнения с помошью CreateObject("<ClassName>"). Гемор, согласен, но если совет #1 не исправит проблемы, то больше я не знаю что посоветовать. Зато такая инициализация классов не требует жёсткой привязки к версии.
3. Ну, и VBA 6... Поскольку все функции и классы приложение создаёт и использует именно через неё, постольку ошибки инициирует именно этот набор библиотек, а вовсе не программа. Попробуй включить их в проект дистрибутива (но только их!!!). Располагается в C:\Program Files\Common Files\Microsoft Shared\VBA\. Эти библиотечки надо будет ещё регистрировать как ActiveX Dll. Инсталлер, по идее, должен делать это сам, но если не сделает, можно вручную с помощью комманды RegSvr32 <путь к Dll> (можно через консоль, можно через пункт меню "Выполнить"). Только, прежде чем приступать к подобным эксперементам, советую как-нибудь сохранить текущее состояние системы, чтоб вообщё не закоцать её на фиг. Можно ещё попробовать кидать VBA'шные Dll'ки в папку с программой и там регистрировать. Но, если надумаешь потом их удалять, их нужно сначало анрегистрить (опять-таки, uninstaller'ом или Regsvr32 -u <Dll path>). Но вариант с VBA - это уже "вообще на крайняк". Я бы всё-таки не стал так изгаляться...
В общем, попробуй в различных комбинациях, начиная с #1. Авось получится... Желаю удачи!

13K
15 марта 2006 года
dimon7k
18 / / 02.03.2006
Цитата:
Originally posted by HarryAxe

В общем, попробуй в различных комбинациях, начиная с #1. Авось получится... Желаю удачи!



Спасибо за ответ!

Получил пищу для размышлений (и действий :) ).

Буду пробовать.

Дима.

13K
17 марта 2006 года
dimon7k
18 / / 02.03.2006
Цитата:
Originally posted by HarryAxe
В общем, попробуй в различных комбинациях, начиная с #1. Авось получится... Желаю удачи!
Originally posted by dimon7k
Спасибо за ответ!

Получил пищу для размышлений (и действий :) ).

Буду пробовать.



Проблема решилась заменой файла asycfit.dll в наборе дистрибутивных файлов этим же файлом но более ранней версии.:}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог