Unexpected Error при замене mscomm32.ocx

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Arkadia
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 26.02.2006 (Вс) 15:23

Unexpected Error при замене mscomm32.ocx

Сообщение Arkadia » 31.01.2007 (Ср) 23:23

Имеется моя программа (написана на VB5). Скомпилирована при установленном mscomm32.ocx от VB6 (6.00.8169).
Устанавливается на второй компьютер, в процессе установки в system32 копируется mscomm32.ocx от VB6. Работает.
Через некоторое время на этом втором компьютере ставится какая-то (ко мне отношения не имеющая) программа, которая в system32 кладет mscomm32.ocx от VB5 (5.01.4319).
В результате моя программа при старте не открывается, ошибка:
Unexpected Error.

Какие возможны варианты, чтобы работоспособность моей программы не зависела от установки на ПК пользователя других программ?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 31.01.2007 (Ср) 23:54

Держать компонент в папке с программой.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 31.01.2007 (Ср) 23:55

Тут трудно что-либо предложить. Надеюсь, что таких программ не так много. Однозначно виноваты сторонние разработчики. Они должны предусмотреть проверку версии файла перед его заменой.

Arkadia
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 26.02.2006 (Вс) 15:23

Сообщение Arkadia » 01.02.2007 (Чт) 1:00

BV писал(а):Держать компонент в папке с программой.

Спасибо. Но компонентов несколько, их всех нужно держать в папке с программой? Насколько это общепринято-прилично?
Где гарантия, что будут "подхвачены" они, а не из system32? - только что попробовал положить в папку с прогой правильный mscomm32 - не помогает, очевидно, что прога лезет за ocx в %systemfolder%. То есть нужно как-то на этапе создания проекта/компиляции указывать бейсику, что ocx лежит в папке проекта. Но тут начинается другая сложность: в зависимости от того, как запускается VB5 (кликом на vb5.exe или кликом на project.vbp) активным каталогом становится или с:\program files\vb, или d:\myproject. После компиляции - активным каталогом будет d:\myproject, а после инсталляции - с:\program files\myproject...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList