Перенос приложений написанных на VB6 на ОС Windows 7
Формулировка задачи:
Друзья, возникла сложность следующего свойства. Написал приложение на VB. ОС: Windows XP SP3. При переносе на такие же оси все работает. А если переносить, допустим, на семерку или висту, то при запуске возникает "Unexpected error". Установщики не помогают (пробовал родной Package Wizard и InstalShield). Кто то советовал BitArts Fusion. Тоже не решил проблему. Наличие библиотек msvbvm50.dll и msvbvm60.dll проверял. Искал по форумам решение, не нашел. Если кто знает в чем суть этой "Unexpected error", помогите)
Решение задачи: «Перенос приложений написанных на VB6 на ОС Windows 7»
textual
Листинг программы
- 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д