Перенос приложений написанных на 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д