А что делать, если dll - нет?

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

А что делать, если dll - нет?

Сообщение Vovik » 15.12.2004 (Ср) 0:10

У меня такой вопрос, вот есть две ф-ции:
timeGetTime
GetTickCount - взаимозаменяемые(относительно). Можно ли написать какое-нть условие при вызове ф-ции, что если ошибка, то брать другую ф-цию, но просто с тем же именем? :roll: Казалось, где-то видел, но может и перепутал.... :roll:

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

Сообщение tyomitch » 15.12.2004 (Ср) 0:30

On Error Goto поможет.
Изображение

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 15.12.2004 (Ср) 0:32

Вообщем то странно ....
'
GetTickCount возвращает некое количество мсек. ну и анализируй его.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 15.12.2004 (Ср) 23:30

codemaster писал(а):Вообщем то странно ....
'
GetTickCount возвращает некое количество мсек. ну и анализируй его.
Причем здесь анализировать??? Мне мое приложение при вызове GetTickCount - выдает kernel32.dll - не найдена!!! Как сделать, чтоб ошибки не вылазило и подменить функции? :roll:

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 15.12.2004 (Ср) 23:37

Vovik писал(а):Мне мое приложение при вызове GetTickCount - выдает kernel32.dll - не найдена!!! Как сделать, чтоб ошибки не вылазило и подменить функции? :roll:


Круто! 5+++! Код в студию! :D :D :D

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

Сообщение tyomitch » 16.12.2004 (Чт) 4:32

Да уж :roll:
Цитата дня отдыхает...
Изображение

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 16.12.2004 (Чт) 14:24

codemaster писал(а):
Vovik писал(а):Мне мое приложение при вызове GetTickCount - выдает kernel32.dll - не найдена!!! Как сделать, чтоб ошибки не вылазило и подменить функции? :roll:


Круто! 5+++! Код в студию! :D :D :D
Я наверно чего-то не понимаю.. Объясни!!! :?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.12.2004 (Чт) 14:27

Он очень удивился, что у тебя вообще ХОТЬ ЧТО-ТО работает без kernel32.dll :)
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 16.12.2004 (Чт) 14:47

у него вместо ОС вирус работает наверное :P :lol: :D

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 16.12.2004 (Чт) 22:12

alibek писал(а):Он очень удивился, что у тебя вообще ХОТЬ ЧТО-ТО работает без kernel32.dll :)
Ребята, вы че, попутали? Это я для примера.... Вообще это связано с моими dll... Вот и вопрос. :roll:

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 17.12.2004 (Пт) 1:34

Vovik писал(а):
alibek писал(а):Он очень удивился, что у тебя вообще ХОТЬ ЧТО-ТО работает без kernel32.dll :)
Ребята, вы че, попутали? Это я для примера.... Вообще это связано с моими dll... Вот и вопрос. :roll:


Чем дальше в лес тем толще партизаны ...

итак сморим начало
Vovik писал(а): У меня такой вопрос, вот есть две ф-ции:
timeGetTime
GetTickCount - взаимозаменяемые(относительно).
......


дальше больше

Vovik писал(а): мое приложение при вызове GetTickCount - выдает kernel32.dll - не найдена!!! Как сделать, чтоб ошибки не вылазило и подменить функции
......


и уже совсем хорошо

Vovik писал(а): Вообще это связано с моими dll... Вот и вопрос. :roll:



есть идея на чем нибудь остановиться :wink: и определится
мы пишем свою kernel32.dll :wink: или чтото другое

P.S. лучше кусок кода в студию

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 17.12.2004 (Пт) 14:55

:evil: Я уже не знаю, как объяснить!!! Ща....
Итак:

Public Declare Function MF1 Lib "MyLib1.dll" () As Long
Public Declare Function MF2 Lib "MyLib2.dll" () As Long

И, вдруг, оказывается, что у меня нет MyLib1.dll. (Функции MF1 и MF2 выполняют одну и ту же операцию, просто находятся в разных библиотеках). Отсюда вопрос:
как узнать при объявлении, что нет этой библ и объявить:

Public Declare Function MF1 Lib "MyLib2.dll" Alias "MF2" () As Long

:roll:

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

Сообщение GSerg » 17.12.2004 (Пт) 15:42

Гы-гы-гы :)
Ещё один чел в мою пользу :)

Ыдынственный способ:
http://www.vbstreets.ru/VB/Articles/66035.aspx
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 17.12.2004 (Пт) 17:49

А разве On Error Goto не поможет? Имхо должно помочь.
Изображение

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

Сообщение GSerg » 17.12.2004 (Пт) 18:14

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

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

Сообщение tyomitch » 17.12.2004 (Пт) 18:21

Конкретно эта - обрабатывается. Вот код:
Код: Выделить всё
Option Explicit

Private Declare Sub NonExistentFunction Lib "kernel32" ()
Private Declare Sub NonExistentLibrary Lib "bogus" ()

Sub Main()
On Error GoTo Handler
    NonExistentFunction
    NonExistentLibrary
Exit Sub
Handler:
    MsgBox Err.Description, , Err.Number
    Resume Next
End Sub


Скомпилируй и запусти.
Так что не Ыдынственный твой способ...
Изображение

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

Сообщение GSerg » 17.12.2004 (Пт) 18:25

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 17.12.2004 (Пт) 18:28

Качаем tyomitch'а! :D
Супер!

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 17.12.2004 (Пт) 18:58

Даешь награду за просвещение по использованию On Error Goto :lol:
зы: непонятно, если люди не знают этого мега простого, от чего бы книжки не почитать какие-нить? :scratch:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru


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

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

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

    TopList  
cron