Это глюк, только вот чей???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Это глюк, только вот чей???

Сообщение Fedorfx » 27.03.2004 (Сб) 17:33

Код: Выделить всё
Public Sub Calculate(Bars As cls_Bar, cont As ctl_Chart)
    Dim ttt() As Double
    ReZ = Bars.Get_Cl ' тут берем массив с данными
    ReDim Ma_Fast(UBound(ReZ)) '  готовим массивы под результат
    ReDim Ma_Slow(UBound(ReZ)) '  готовим массивы под результат
    ReDim ttt(UBound(ReZ)) '  готовим промежуточный массив

    L_Temp = NRMA(ReZ(0), ttt(0), Ma_Fast(0), Porog, Period_Fast, Bars.kolvo)
    L_Temp = NRMA(ReZ(0), ttt(0), Ma_Slow(0), Porog, Period_Slow, Bars.kolvo)
Exit Sub
'err:
'    MsgBox err.Description & "   " & err.HelpContext
End Sub

Проверил 10 раз
если убрать комментаторские апострофы после Exit sub то результаты расчетов изменяются.
NRMA это моя внешняя функция из DLL написанной на С++
Метка err: осталась от стоявшего раньше onerror goto err:
Не понимаю почему на результат работы функции влияет наличие строк кода после exit sub
Помогите советом, чей это глюк. Результаты отличаются довольно прилично ( там массивы по 3-5 тыс элементов).
P.S. Может есть разница как мы выходим из функции Exit or End??? Но тогда какого .... это влияет на результаты расчетов которые кладутся в массивы??
P.S Или подскажите метод по которому можно определить в чем я неправ.

SBJocker
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 19.01.2004 (Пн) 16:57

Сообщение SBJocker » 28.03.2004 (Вс) 20:15

Незнаю в чём точно проблема, но err - это встоенный объект VB и пользовать это имя под метку нельзя!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 29.03.2004 (Пн) 1:37

похоже при одном из вычислений он у тебя ныряет туда...
вобще ERR - объект, который возвращает номер ошибки, которая произошла ... смени на чего нить другое ... например ... ERRE
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 29.03.2004 (Пн) 2:36

Ребята, спасибо за то что откликнулись.
В который раз убеждаюсь что в первую очередб ошибки надо искать в себе.
Сработал закон мерфи. После 6ти часового глумилова, когда я уже готов был ставить микрософт в известность :lol: начал методично менять все параметры в данной функции.
........ ............ .................
Не буду утомлять, но в итоге оказалось что в моей DLL которую я писал на С++ не было иницилизации в ноль создаваемой переменной. ( VB по умолчанию 0 присваивает).
Теперь гляжу на мир другими глазами :shock:
Спасибо за участие.
P.S. Кстати про err тут не причем, все дело было в MSGBOX а точнее в памяти , которую выделял компилятор для результирующей строки сообщения. Но чего мне стоило это знание ............... :roll:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 14

    TopList