Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
1

Перенос приложений написанных на VB6 на ОС Windows 7

12.03.2012, 00:50. Просмотров 2454. Ответов 17
Метки нет (Все метки)

Друзья, возникла сложность следующего свойства. Написал приложение на VB. ОС: Windows XP SP3. При переносе на такие же оси все работает. А если переносить, допустим, на семерку или висту, то при запуске возникает "Unexpected error". Установщики не помогают (пробовал родной Package Wizard и InstalShield). Кто то советовал BitArts Fusion. Тоже не решил проблему. Наличие библиотек msvbvm50.dll и msvbvm60.dll проверял. Искал по форумам решение, не нашел. Если кто знает в чем суть этой "Unexpected error", помогите)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2012, 00:50
Ответы с готовыми решениями:

Перенос написанных программ с Linux на Windows
Здравствуйте! Скажите, пожалуйста, если я напишу программу, скажем на python 3.5 на Ubuntu, затем...

Перенос приложений Windows Forms на другие ПК
Программа, написанная на Visual C++ с виндоформами не запускается на других пк. При установке...

Распространение приложений, написанных на VS2010
Я написал программу на C++, скомпилировал её в VS2010. Теперь она требует для своей работы...

Запуск приложений написанных в VS 2012 на Win7, не запускаются на XP
Здравствуйте коллеги! Столкнулся с такой проблемой, написал приложение на vb.net среда разработки...

17
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
12.03.2012, 06:39 2
Какие ссылки и компоненты задействованы в проекте?
0
Миниатюры
Перенос приложений написанных на VB6 на ОС Windows 7  
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 10:07  [ТС] 3
Kogb, Ссылки на OLE Automation и System.Windows.Form.dll
Из компонентов только метки, кнопки и текстбоксы
0
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
12.03.2012, 12:17 4
Попробуй убрать все лишнее, так как подозреваю, что дело именно в этом.
В компонентах вообще ничего не должно быть отмечено, а в ссылках - как на картинке.
Делал довольно сложные приложения для висты и 7, в основном на чистом API, придерживался такого принципа и подобных проблем с переносимостью никогда не возникало.
0
Миниатюры
Перенос приложений написанных на VB6 на ОС Windows 7  
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
12.03.2012, 13:53 5
В этом случае можно обойтись без инсталлятора. Для XP, Vista, 7, Server2003-2008.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 16:55  [ТС] 6
Kogb, не помогло(
0
Модератор
6478 / 2523 / 489
Регистрация: 24.04.2011
Сообщений: 4,606
Записей в блоге: 10
12.03.2012, 18:09 7
Kromwell, а какие нибудь API используются в коде? Вообще, что за функционал, что программа делает?
Многие функции просто уже в Висте и выше не поддерживаются системой, но без кода решить твою проблему - надо быть экстрасенсом.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 19:26  [ТС] 8
Прога расчитывает гос.пошлину. Принимает число, исходя из него расчитывает пошлину и выдает результат.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Private Declare Function HideCaret Lib "user32" (ByVal hwnd As Long) As Long
 
Private Sub Form_Load()
 KeyPreview = True
 InputData.MaxLength = 16
End Sub
 
Private Sub Result_GotFocus()
 HideCaret (Result.hwnd) 'Скрытие каретки в поле Result
End Sub
 
Private Sub Go_Click()
 Dim X As Single
 Dim Y As Single
 Dim c As Variant
 Dim t As Variant
 Dim char As String
 Dim response
 Dim S As Double
 Dim m() As String
   
   If InputData.Text = "" Then 'Защита от ввода пустой строки
     Exit Sub
   End If
   
   t = Len(InputData.Text) 'Замена точек на запятые
   c = InputData.Text
     For i = 1 To t
     char = Mid(c, i, 1)
       If char = "." Then
         Mid(c, i, 1) = ","
       End If
     Next i
   
   If Not IsNumeric(c) Then 'Проверка измененных входных данных на возможность перевода в число
     response = MsgBox("Допускается ввод только числовых значений. Нажмите OK, чтобы вернуться.", vbOKOnly, "Ошибка")
     InputData.Text = ""
     InputData.SetFocus
     Exit Sub
   End If
   
   X = c 'Присвоение проверенных входных данных к переменной числового типа
     
     If X <= 0 Then 'Проверка числового значения на положительность
       response = MsgBox("Допускается ввод только положительных чисел. Нажмите OK, чтобы вернуться.", vbOKOnly, "Ошибка")
       InputData.Text = ""
       InputData.SetFocus
       Exit Sub
     End If
   
   Select Case X 'Выбор формулы для расчета
    Case 0 To 20000 'Входные данные в диапазоне от 0 до 20001
     Y = X * 4 / 100 'Расчет
     If Y >= 400 Then
       S = Format(Y, "0.00") 'Присвоение результата к переменной для обработки вывода
       Else: Result.Text = "400 руб. 00 коп." 'Вывод результата в случае если он меньше 400
       Exit Sub
     End If
    Case 20000.01 To 100000
     Y = 800 + (X - 20000) * 3 / 100
     S = Format(Y, "0.00")
    Case 100000.01 To 200000
     Y = 3200 + (X - 100000) * 2 / 100
     S = Format(Y, "0.00")
    Case 200000.01 To 1000000
     Y = 5200 + (X - 200000) * 1 / 100
     S = Format(Y, "0.00")
    Case Is > 1000000
     Y = 13200 + (X - 1000000) * 0.5 / 100
       If Y <= 60000 Then
         S = Format(Y, "0.00") 'Присвоение результата к переменной для обработки выходных данных
         Else: Result.Text = "60000 руб. 00 коп." 'Вывод результата в случае если результата меньше 60000
         Exit Sub
       End If
   End Select
    If 0 = (S - CInt(S)) Then 'Проверка результата на целочисленность
      Result.Text = Str(S) + " руб. 00 коп." 'Вывод результата в случае целочисленности
      Else: m = Split(Str(S), ".") 'Разделение результата в случае дробности
      Result.Text = m(0) + " руб. " + m(1) + " коп." 'Вывод результата в случае дробности
    End If
End Sub
 
Private Sub Form_KeyPress(KeyAscii As Integer) 'Привязка запуска вычисления к Enter
  If KeyAscii = 13 Then
   Call Go_Click
   KeyAscii = 0
  End If
End Sub
 
Private Sub Reset_Click()
 InputData = ""
 Result = ""
End Sub
 
Private Sub Exit_Click()
 End
End Sub
0
Модератор
6478 / 2523 / 489
Регистрация: 24.04.2011
Сообщений: 4,606
Записей в блоге: 10
12.03.2012, 20:36 9
Цитата Сообщение от Kromwell Посмотреть сообщение
Прога расчитывает гос.пошлину.
Скомпилировал, запустил на win7 x86 работает без ошибок. В принципе там нет ни чего в коде такого, что бы не работало. Если надо могу проверить и для х64 версии w7, но не сейчас, а завтра на работе.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 20:56  [ТС] 10
Pro_grammer, думаю, при компиляции то все будет ок. Но, все равно спасибо. И все таки... Есть идеи, почему при переносе/установке все так плохо?) Сейчас Hello World с XP на семерку перетащил. Запускается без проблем. Значит проблема все таки в коде?
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 21:21  [ТС] 11
Вот так она выглядит.
Перенос приложений написанных на VB6 на ОС Windows 7
0
440 / 158 / 10
Регистрация: 25.02.2012
Сообщений: 392
Записей в блоге: 2
12.03.2012, 21:43 12
Цитата Сообщение от Kromwell Посмотреть сообщение
Ссылки на OLE Automation и System.Windows.Form.dll
А System.Windows.Form.dll тоже регистрировал на семерке.

Добавлено через 44 секунды
И регистрация должно быть от имени администратора
0
Модератор
6478 / 2523 / 489
Регистрация: 24.04.2011
Сообщений: 4,606
Записей в блоге: 10
12.03.2012, 22:05 13
Цитата Сообщение от coderxx Посмотреть сообщение
А System.Windows.Form.dll тоже регистрировал на семерке.
Нет, ни чего не регистрировал. Просто скомпилированный в XP-шке файл скопировал на 7-ку и запустил.
Можешь мой протестировать, он правда не такой красивый как твой, чисто схематически.
0
Вложения
Тип файла: zip Project1.zip (5.4 Кб, 10 просмотров)
440 / 158 / 10
Регистрация: 25.02.2012
Сообщений: 392
Записей в блоге: 2
12.03.2012, 22:22 14
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Нет, ни чего не регистрировал. Просто скомпилированный в XP-шке файл скопировал на 7-ку и запустил.
Я спросил от Kromwell, потому что это библиотека было у него.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 7
12.03.2012, 23:04  [ТС] 15
Сейчас убрал из проги свою иконку. Все работает о_О У кого нибудь есть идеи, почему иконка могла мешать?
0
1 / 1 / 0
Регистрация: 05.03.2012
Сообщений: 31
15.03.2012, 22:27 16
У меня было так:

Написал прогу на Висте. Все работало.

Запускал на ЭксПи и 7, в обоих случаях не запускалася, требовала какой-то comdlg32. Убрал из проги элемент коммондиалог и все заработало... без понятия чего там и зачем.
0
Почетный модератор
21203 / 8938 / 1080
Регистрация: 11.04.2010
Сообщений: 11,014
16.03.2012, 07:31 17
Цитата Сообщение от Insert Посмотреть сообщение
Убрал из проги элемент коммондиалог и все заработало... без понятия чего там и зачем
Это диалог для выбора/сохранения файла, если память не изменяет, а уж выбрасывать его из программы или нет - дело хозяйское
По хорошему этот компонент помещается на целевую машину, и возможно, регистрируется.

Особо четко это осознаете, когда начнете пользовать элементы сторонних разработчиков
0
1 / 1 / 0
Регистрация: 05.03.2012
Сообщений: 31
16.03.2012, 23:17 18
Цитата Сообщение от Памирыч Посмотреть сообщение
Это диалог для выбора/сохранения файла, если память не изменяет, а уж выбрасывать его из программы или нет - дело хозяйское
Ну я понял, что можно зерегистрировать его и все запляшет, но он в принципе мне был не нужен. У меня и так в приложении обязательны к установке пару плагинов сторонних разработчиков, на первый раз думаю хватит для меня этих сложностей))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2012, 23:17

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

Нужны примеры приложений, написанных на ASP.net
Здравствуйте. Начал изучать веб-программирование, и хотелось бы сразу посмотреть на реальные...

Запуск автономных приложений написанных на Qt без SSE2
Здравствуйте. Собственно вопрос, возможно ли запустить приложение написанное на Qt 5.3, которое...

Windows 2000 Rus VB6, VB6 Resource Editor отсутствует
В Windows 2000 Rus + SP3 проинсталлировал Visual Studio 6 + MSDN Full (вся студия на 6 CD-R). В VB6...

Нужен очень простой и очень содержательный мануал по взаимодействию приложений, написанных на VB 6.0
Добрый день всем, очень нужен очень простой в понимании и очень содержательный мануал по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.