Подключение DLL

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Matrixman
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 20.12.2004 (Пн) 12:46

Подключение DLL

Сообщение Matrixman » 20.12.2004 (Пн) 12:57

Всем привет

Импортирую функцию из следующим образом
Код: Выделить всё
Private Declare Function DBInit Lib "DBMDataBaseAccessModule.dll" () As Integer

После этого компилирую приложение, и копирую ее в ту же папку что и DLL. Приложение запускается!
Но если попытаться запустить приложение под отладчиком получаю ошибку:
Код: Выделить всё
run-time error '53'
File not find: DBMDataBaseAccessModule.dll

В системную переменую PATH путь к этой DLL прописан! Так как же мне запустить приложение под отладчиком?

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 20.12.2004 (Пн) 13:34

Ты зарегестрировал библу в системе ? Не но хотя даже если библа не зарегестрирована в системе ошибки не должно возникать ! Ты скомпиль прогу и запусти сваю гатовую ехе шку , и бутет ошибка или нет ?

:wink:
Max!

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 20.12.2004 (Пн) 13:36

Попробуй положить dll также около проекта (vbp)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

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

Re: Подключение DLL

Сообщение codemaster » 20.12.2004 (Пн) 13:39

Matrixman писал(а):Всем привет

Импортирую функцию из следующим образом
Код: Выделить всё
Private Declare Function DBInit Lib "DBMDataBaseAccessModule.dll" () As Integer

После этого компилирую приложение, и копирую ее в ту же папку что и DLL. Приложение запускается!
Но если попытаться запустить приложение под отладчиком получаю ошибку:
Код: Выделить всё
run-time error '53'
File not find: DBMDataBaseAccessModule.dll

В системную переменую PATH путь к этой DLL прописан! Так как же мне запустить приложение под отладчиком?



Немного непонятно что за тип DLL но
попробуй так

Код: Выделить всё
Private Declare Function DBInit Lib "DBMDataBaseAccessModule.dll" () As Integer

Sub Call......()
   
    ChDir("Туда, где лежит DBMDataBaseAccessModule.dll")
   
DBInit
   
end sub

Matrixman
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 20.12.2004 (Пн) 12:46

Сообщение Matrixman » 20.12.2004 (Пн) 13:58

Попробуй положить dll также около проекта (vbp)

Пробывал - не помогает
Ты зарегестрировал библу в системе ? Не но хотя даже если библа не зарегестрирована в системе ошибки не должно возникать ! Ты скомпиль прогу и запусти сваю гатовую ехе шку , и бутет ошибка или нет ?

Библиотека не COMовская, она просто эспортирует пару функций. Ну а приложение компилируется и запускается (я это уже говорил). Вопрос был почему в Debugе не запускается?
Немного непонятно что за тип DLL но
попробуй так

Код: Выделить всё
Private Declare Function DBInit Lib "DBMDataBaseAccessModule.dll" () As Integer

Sub Call......()
   
    ChDir("Туда, где лежит DBMDataBaseAccessModule.dll")
   
DBInit
   
end sub

ChDir помог, однако не хотелось бы менять код.

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

Сообщение codemaster » 20.12.2004 (Пн) 14:10

Matrixman писал(а):ChDir помог, однако не хотелось бы менять код.




А если так ?

Код: Выделить всё
#If   APP_DEBUG Then

ChDir

#End If


что касается почему? то тут нет ничего странного см.

http://msdn.microsoft.com/library/defau ... ibrary.asp

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

Сообщение Konst_One » 20.12.2004 (Пн) 14:26

кинь эту библу в системную папку виндов и не мучайся

Matrixman
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 20.12.2004 (Пн) 12:46

Сообщение Matrixman » 20.12.2004 (Пн) 14:49

После того как я добавил путь в DLL в PATH, забыл рестартануть компьютер. :oops: Теперь все OK.

Всем спасибо

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

Сообщение GSerg » 20.12.2004 (Пн) 16:56

Всё же я скажу :)

Библа ищется в каталоге, из которого запущена прога. Если прога запущена под IDE, то библа ищется в текущем каталоге IDE. Текущий каталог IDE - это её собственный корень в том случае, когда IDE была запущена сама по себе; и папка приложения, когда IDE запущена даблкликом по файлу проекта.

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


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

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

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

    TopList