Современные решения

для защиты Windows приложений

и восстановления исходного кода

Visual Basic 6.0 - On error - странности


On error - странности

From: "A. Skrobov" <tyomitch [@] r66.ru>


Thu Feb 19 2004 00:49, Max Irgiznov wrote to Alexander Asyabrik:

MI> Вобщем глюк присутствует и никак не искореняется. :(

Код-то покажи, а то как гадать?

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

On error - странности

Hi, All !

Столкнулся вот с такой проблемой. Исспользуется VB6+SP5, Win2k3+SP1+HF.

Есть цепочка последовательный вызовов методов, допустим:
mainform->function1->sub1->sub2->function2


Ставим опцию IDE в Break unhandled error, в каждом методе определен обработчик
ошибок On Error GoTo err. Если ошибка происходит например в sub2, то в IDE
показывается местный обработчик, отключаем его, запускаем и видим сообщение из
обработчика в sub1, и.т.д вплоть до mainform. Вобщем интересное поведение.
Так вот проблема собственно не в таком(хотя видимо с этим связанная)
выполнении обработчиков, а в том, что в скомпилированном виде, ниодин из них не
выполняется, т.е. приложение валится с банальной ошибкой доступа к памяти.
Код дающий такой эффект эквивалентен приблезительно следующему: zz = arr(-1)
Хотя ради интереса делал err.raise и оно тоже упало на ровном месте, т.е. ни
один из обработчиков по ходу выполнения кода не сработал.

Я в растеренности, пользователи волнуются, причем не понятно когда и почему все
это началось.

Good-bye, All !!! С вами был, есть и будет: Max Irgiznov [VS.NET] [FreeBSD]
* Origin: KittenMail ничто... не pаботает... так долго... (2:5051/36.20)

Re: очередной глупый вопрос про классы...

From: "A. Skrobov" <tyomitch [@] r66.ru>


Tue Feb 17 2004 20:31, A. Skrobov wrote to Dmitriy Kozyrev:

AS>>> Стал разбираться - и действительно, процедуры не генерируются! Я в

AS>>> растерянности.

DK>> Точно не генерируются? Я заюзал TypeLib Information - так он и на

DK>> свойства, и на переменные говорит одно и то же, мол, свойства это, самые

DK>> настоящие. :)

AS> Совершенно точно. Кода под рукой нету, но завтра запощу.

Вот, для интересующихся.

16: Option Explicit
17: Private Declare Sub DebugBreak Lib "kernel32.dll" ()
18:
19: Public Member1 As Long
20: Private mvarMember2 As Long
21:
04A51A00 push ebp
04A51A01 mov ebp,esp
04A51A03 sub esp,0Ch
04A51A06 push offset ___vbaExceptHandler (04a510e6)
04A51A0B mov eax,fs:[00000000]
04A51A11 push eax
04A51A12 mov dword ptr fs:[0],esp
04A51A19 sub esp,8
04A51A1C push ebx
04A51A1D push esi
04A51A1E push edi
04A51A1F mov dword ptr [ebp-0Ch],esp
04A51A22 mov dword ptr [ebp-8],offset __imp___CIexp+34h (04a510c0)
04A51A29 mov dword ptr [ebp-4],0
04A51A30 mov esi,dword ptr [Me]
04A51A33 push esi
04A51A34 mov eax,dword ptr [esi]
04A51A36 call dword ptr [eax+4]
22: Public Property Let Member2(ByVal vData As Long)
04A51A39 mov ecx,dword ptr [vData]
04A51A3C mov dword ptr [esi+38h],ecx
23: mvarMember2 = vData
04A51A3F mov eax,dword ptr [Me]
04A51A42 push eax
04A51A43 mov edx,dword ptr [eax]
04A51A45 call dword ptr [edx+8]
04A51A48 mov eax,dword ptr [ebp-4]
04A51A4B mov ecx,dword ptr [ebp-14h]
04A51A4E pop edi
04A51A4F pop esi
04A51A50 mov dword ptr fs:[0],ecx
04A51A57 pop ebx
04A51A58 mov esp,ebp
04A51A5A pop ebp
04A51A5B ret 8
24: End Property
25:
04A51A60 push ebp
04A51A61 mov ebp,esp
04A51A63 sub esp,0Ch
04A51A66 push offset ___vbaExceptHandler (04a510e6)
04A51A6B mov eax,fs:[00000000]
04A51A71 push eax
04A51A72 mov dword ptr fs:[0],esp
04A51A79 sub esp,0Ch
04A51A7C push ebx
04A51A7D push esi
04A51A7E push edi
04A51A7F mov dword ptr [ebp-0Ch],esp
04A51A82 mov dword ptr [ebp-8],offset __imp___CIexp+3Ch (04a510c8)
04A51A89 xor edi,edi
04A51A8B mov dword ptr [ebp-4],edi
04A51A8E mov esi,dword ptr [Me]
04A51A91 push esi
04A51A92 mov eax,dword ptr [esi]
04A51A94 call dword ptr [eax+4]
26: Public Property Get Member2() As Long
04A51A97 mov ecx,dword ptr [esi+38h]
04A51A9A mov dword ptr [Member2],edi
04A51A9D mov dword ptr [Member2],ecx
27: Member2 = mvarMember2
04A51AA0 mov eax,dword ptr [Me]
04A51AA3 push eax
04A51AA4 mov edx,dword ptr [eax]
04A51AA6 call dword ptr [edx+8]
04A51AA9 mov eax,dword ptr [Member2]
04A51AAC mov ecx,dword ptr [Member2]
04A51AAF mov dword ptr [eax],ecx
04A51AB1 mov eax,dword ptr [ebp-4]
04A51AB4 mov ecx,dword ptr [ebp-14h]
04A51AB7 pop edi
04A51AB8 pop esi
04A51AB9 mov dword ptr fs:[0],ecx
04A51AC0 pop ebx
04A51AC1 mov esp,ebp
04A51AC3 pop ebp
04A51AC4 ret 8
28: End Property
29:
04A51AD0 push ebp
04A51AD1 mov ebp,esp
04A51AD3 sub esp,0Ch
04A51AD6 push offset ___vbaExceptHandler (04a510e6)
04A51ADB mov eax,fs:[00000000]
04A51AE1 push eax
04A51AE2 mov dword ptr fs:[0],esp
04A51AE9 sub esp,8
04A51AEC push ebx
04A51AED push esi
04A51AEE push edi
04A51AEF mov dword ptr [ebp-0Ch],esp
04A51AF2 mov dword ptr [ebp-8],offset __imp___CIexp+44h (04a510d0)
04A51AF9 mov dword ptr [ebp-4],0
04A51B00 mov eax,dword ptr [Me]
04A51B03 push eax
04A51B04 mov ecx,dword ptr [eax]
04A51B06 call dword ptr [ecx+4]
30: Public Sub Break()
04A51B09 call ___vba [@] 0019D2EC (04a515c8)
04A51B0E call dword ptr [__imp____vbaSetSystemError (04a51010)]
31: DebugBreak
04A51B14 mov eax,dword ptr [Me]
04A51B17 push eax
04A51B18 mov edx,dword ptr [eax]
04A51B1A call dword ptr [edx+8]
04A51B1D mov eax,dword ptr [ebp-4]
04A51B20 mov ecx,dword ptr [ebp-14h]
04A51B23 pop edi
04A51B24 pop esi
04A51B25 mov dword ptr fs:[0],ecx
04A51B2C pop ebx
04A51B2D mov esp,ebp
04A51B2F pop ebp
04A51B30 ret 4

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re[3]: Упаковка в ZIP и CAB

From: Максим Кнышов <knyshow [@] mail.dsip.net>


Привет A.!

МК>> Люди, больше никто никаких архиваторов не знает???

AS> Я писал модуль для работы с unrar.dll, но там есть левая библиотека-переходник

unrar же только распаковывает архивы, а мне нужна именно упаковка...
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•





* Origin: КПКП "Транс Агентство" (2:5020/400)

Многоязыковая поддержка...

From: Максим Кнышов <knyshow [@] mail.dsip.net>


Привет Sergey!

SM> Если это и есть та самая "измененная под свои нужды" чужая Dll,

SM> мой совет - попросить у ее автора пару уроков: наверное, не откажет, раз позволил

SM> сменить копирайт. А вообще это те азы, без знания которых обычно за коммерческий

SM> софт не берутся.

Эта не та DLL, автор разговаривает только на Английском и Hемецком, а это языки, на
которых я разговариваю только при помощи www.translate.ru. Т.е. вы сами понимаете, что при
таком раскладе я мало чему могу у него научиться. Hа menumaker.dll было получено
разрешение "Делай что хочешь, только если будешь менять исходники - мое имя не свети".
Сейчас этот человек переписывает свою DLL по моей просьбе "под меня" и там уже будет стоять
ЕГО копирайт.


SM> А вообще это те азы, без знания которых обычно за коммерческий софт не берутся.

Теперь по поводу коммерческого софта:
В дистрибутиве следующей версии будет файл Readme.txt, в котором есть такие строки:

SM> Иногда мне люди задают вопросы наподобие: "Зачем создавать велосипед? Ведь

SM> подобных программ - огромное количество!" Я отвечу на этот и подобные ему

SM> вопросы раз и навсегда:

SM> Программа Golden BackUp изначально создавалась для ЛИЧHОГО использования мною

SM> для резервного копирования важной мне информации и поводом для ее создания

SM> послужил выход из строя моего старенького винчестера, после чего я еще пару

SM> месяцев был в дипрессии. Так вот, программа писалась ДЛЯ СЕБЯ, набирала

SM> возможностей, модифицировалась под конкретные задачи, но тем не менее

SM> изначально писалась как универсальная. Спустя некоторое время мне просто за

SM> бокалом пива предложили выложить программу в Интернет, что и было сделано.

SM>

SM> Второй вопрос, который мне частенько задают: "Почему на программу выставлена

SM> такая низная/высокая цена?" Цена выставлена не просто так - этой ценой я

SM> оправдываю стоимость доступа в Интернет, стоимость кофе и пива, потребляемого

SM> мною во время написания программы. И все. Если говорить откровенно - никакой

SM> прибыли. Хобби.

Т.е. это дейсчтвительно хобби, которое реально прибыли (пока?) не приносит.

SM> Теперь по сути вопроса:

Спасибо, очень интересно.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•






* Origin: КПКП "Транс Агентство" (2:5020/400)

Упаковка в ZIP и CAB

From: Максим Кнышов <knyshow [@] mail.dsip.net>


Привет Dmitriy!

DK> А нафига? Для галочки?

А если и так?
DK> Смысла не вижу. Rar, Cab и Zip лидируют с огромным

Zip? Cab - прекрасно, а вот под Rar я что-то никакой доки не нашел..

DK> существуют новые архиваторы, обгоняющие даже Rar - например, PPMd и основанный на нем

DK> PPMonstr).

Hе слышал, но посмотрим, пасиба.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•






* Origin: КПКП "Транс Агентство" (2:5020/400)

Правильное построение SQL- запроса

From: "Vasiliy Khorolich" <horvv [@] poltava.bank.gov.ua>


Уважаемый All!
Помогите, пожалуйста, решить мою проблему.
Суть вот в чем:
Имеется некий SQL - запрос к базе Access :

SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & S_Data & "'"
где
S_Data = txtData.Text
Т.е. вводится в текстовое поле некая дата (она получается типа String) , а
потом по этому значению ставится фильтр из базы Access.

Проблема в том, что надо установить в самой таблице Kurs_City базы Access
поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,
для решения важного аспекта задачи).
HО! Если поставить тип этого поля в таблице Access - Дата/Время, то
SQL-запрос, указанный выше, напрочь отказывается работать.
Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но
как выйти из этой проблемы?
Пробовал делать так :

SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & CDate(S_Data)
& "'"
но этого ничего не дало, выдает ошибку во время выполнения...

Если поставить тип поля - Текстовый, SQL-запрос работает без проблем. HО!
Тогда не работает нормально другая часть задачи.
Помогите, как выйти из этой проблемы.

Василий Хоролич.


* Origin: Demos online service (2:5020/400)

Re: Правильное построение SQL- запроса

Мы где-то виделись, Vasiliy?

23 Feb 04 09:34:56 в RU.VISUAL.BASIC Vasiliy Khorolich -> All:


VK> Проблема в том, что надо установить в самой таблице Kurs_City базы Access

VK> поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,

VK> для решения важного аспекта задачи).

VK> HО! Если поставить тип этого поля в таблице Access - Дата/Время, то

VK> SQL-запрос, указанный выше, напрочь отказывается работать.

VK> Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но

VK> как выйти из этой проблемы?

VK> Пробовал делать так :


VK> SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" &

VK> CDate(S_Data) & "'"

VK> но этого ничего не дало, выдает ошибку во время выполнения...


Попробуй вместо одинарных кавычек использовать символ #.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: Упаковка в ZIP и CAB

From: "A. Skrobov" <tyomitch [@] r66.ru>


Hello, Максим!
You wrote in conference fido7.ru.visual.basic to "Dmitriy" <fido7.ru.visual.basic [@] talk.ru>to Dmitriy on Mon, 23 Feb 2004 06:21:43

+0000 (UTC):

DK>> Смысла не вижу. Rar, Cab и Zip лидируют с огромным

МК> Zip? Cab - прекрасно, а вот под Rar я что-то никакой доки не нашел..

Сжатие раром "коммерческое", т.е. большая-большая тайна. Если кто-то и знает, как сжимать, то только если он "изучал" сам rar.exe


--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)

Упаковка в ZIP и CAB

From: Максим Кнышов <knyshow [@] mail.dsip.net>


Привет A.!

AS> Сжатие раром "коммерческое", т.е. большая-большая тайна. Если кто-то и знает, как

AS> сжимать, то только если он "изучал" сам rar.exe

Hу так я об этом и говорю... Спецификации формата я в свое время очень сильно искал.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•






* Origin: КПКП "Транс Агентство" (2:5020/400)