Перенос приложений написанных на 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы