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

Узнай цену своей работы

Формулировка задачи:

Друзья, возникла сложность следующего свойства. Написал приложение на VB. ОС: Windows XP SP3. При переносе на такие же оси все работает. А если переносить, допустим, на семерку или висту, то при запуске возникает "Unexpected error". Установщики не помогают (пробовал родной Package Wizard и InstalShield). Кто то советовал BitArts Fusion. Тоже не решил проблему. Наличие библиотек msvbvm50.dll и msvbvm60.dll проверял. Искал по форумам решение, не нашел. Если кто знает в чем суть этой "Unexpected error", помогите)

Решение задачи: «Перенос приложений написанных на VB6 на ОС Windows 7»

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

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


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

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

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы