Перестал работать верный код

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

Перестал работать верный код

Сообщение Алексей К. » 16.06.2006 (Пт) 12:37

Код: Выделить всё
m_RunningCompiled = ((2147483647 + 1) < 0)

Ругается на 6-ю ошибку "Overflow". Эта строка из классаов шифровки clsGost и clsBlowFish из подборки VBCrypto. Раньше у меня эти шифровки работали нормально, даже если запускаю новый проект только с вышеуказанным кодом - все равно ругается. Где грабли?

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 16.06.2006 (Пт) 12:43

Project - Project Properties - Compile - Advanced Optimizations

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 16.06.2006 (Пт) 12:49

А какие там галки выставить нужно? Ствил на "Убрать проверку переполнения целых" - все равно ругается :(

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 16.06.2006 (Пт) 12:58

Мда, поторопился :)
Код: Выделить всё
  MsgBox (CStr(2147483647) + 1) < 0

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 16.06.2006 (Пт) 13:07

Через сообщение прокатывает без всякий галок в доп. оптимизации.
а мой код не хочет:
Код: Выделить всё
Dim m_RunningCompiled As Boolean
m_RunningCompiled = ((2147483647 + 1) < 0)

:( Помогите избавиться от трабла плиз

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 16.06.2006 (Пт) 13:21

Код: Выделить всё
Dim m_RunningCompiled As Boolean
m_RunningCompiled = (CStr(2147483647) + 1) < 0

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 16.06.2006 (Пт) 13:24

Код: Выделить всё

Dim m_RunningCompiled As Boolean
m_RunningCompiled = (Clng(2147483647) + 1) < 0


упс, не успел :)
подписи нет и не будет

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 16.06.2006 (Пт) 13:27

Спасибо, буду надеятся что данная поправка никак не повлияет на работу алгоритма шифра и в будущем сюрпризов с раскодированием не будет. Но мы все-таки обошли траблу, а не избавились от нее. Вопрос остается открытым...

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 16.06.2006 (Пт) 13:31

подписи нет и не будет

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 16.06.2006 (Пт) 13:43

спасибо за статейку, если я конечно правильно напереводил, то для избежания текущей траблы нужно конвертить в другие типы. но раньше-то у меня все работало без всяких конвертаций, да и многие эти алгоритмы шифровки используют, не думаю что всем приходилось код класса править. станно все это ...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 16.06.2006 (Пт) 13:44

А вообще, можно не проверять
(2147483647 + 1) < 0 всегда false :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.06.2006 (Пт) 13:47

Код: Выделить всё
Sub Main()
On Error Resume Next
If (2147483647 + 1) < 0 Then MsgBox "Не звезди!"
End Sub

запусти и убедись
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.06.2006 (Пт) 13:50

Всем участникам топика.

Переведите название переменной, упоминаемой в первом посте.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 16.06.2006 (Пт) 13:54

Ха!, это равносильно
Код: Выделить всё
  MsgBox (2147483647 + 1) < 0
  MsgBox "Не звезди!"

[EDIT после поста GSerg] Бревно в глазу ;)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.06.2006 (Пт) 14:04

Nicky писал(а):А вообще, можно не проверять
(2147483647 + 1) < 0 всегда false :)

Я показал, что не всегда. Согласен?
Изображение


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

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

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

    TopList