ПОМОГИТЕ 2 !!!
Но, ВСЕ ТАКИ, подскажите как обеспечивать работоспособность прог, написанных под ХР-шкой на копмах с младшими версиями винды (в моем случае-98 винда).
В моем случае программа не содержит апишных функций, использует стандартные элементы управления, но под 98 виндой не работает.
Дистрибутив, созданный P&D Wizard, не устанавливается (выдает диалоговое окно о необходимости заменить ряд системных файлов и на дальнейшие действия не реагирует). Дистрибутив, созданный Setup Factory прогу устанавливает, но при этом меняет ряд системных библиотек 98 винды на ХР-шные библиотеки, после чего вообще возникают проблемы уже с самой системой (в частности из-за замены файла oleaut32.dll на соответствующий ХР-шный файл).
Пробовал взять из пакета, созданного P&D Wizard, папку Support, перенести её на комп с 98 виндой и из этой папки запустить екзешник проекта. Главная форма проги запускается. Доступен также ряд функций проги, но как только я пытаюсь загрузить в PictureBox соответствующей формы какое-либо изображение, возникает ошибка Run-time error 50003.
Не подскажете, с чем это связано?
И, снова повторяюсь, как правильно формировать совокупность необходимых файлов дистрибутива, чтобы обеспечить нормальную работу программ под целевыми операционными системами?
Заранее благодарю.
Дима.
Пробовал взять из пакета, созданного 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. Авось получится... Желаю удачи!
В общем, попробуй в различных комбинациях, начиная с #1. Авось получится... Желаю удачи!
Спасибо за ответ!
Получил пищу для размышлений (и действий :) ).
Буду пробовать.
Дима.
В общем, попробуй в различных комбинациях, начиная с #1. Авось получится... Желаю удачи!
Originally posted by dimon7k
Спасибо за ответ!
Получил пищу для размышлений (и действий :) ).
Буду пробовать.
Проблема решилась заменой файла asycfit.dll в наборе дистрибутивных файлов этим же файлом но более ранней версии.:}