Страница: 1 | 2 |
Вопрос: Проблемы с вызовом самопальной DLL
Добавлено: 16.04.07 17:59
Автор вопроса: avkiev | ICQ: 226072
Есть один проект.
В нем, кроме всего прочего, есть самописная DLL.
Но у некоторых юзеров экзешка не видит DLL (которая лежит рядом).
В bas-коде функции DLL определяю так:
Private Declare Sub MyFunction Lib "MyDLL.dll"...
На некоторых машинах - все ок, все нормально.
Но на некоторых машинах функция MyFunction вываливается с ошибкой "Не вижу файл MyDLL.dll".
Пытался зарегать dll через RegSvr32 - говорит, что "Зарегистрировать невозможно, нет точки входа".
Пытался через Project-Reference прописать эту DLL - говорит "Can't add a reference to specified file".
Копирование самой dll-ки в System32 тоже не помогает, да и нехорошо это...
Пытался писать так:
Private Declare Sub MyFunction Lib ".\MyDLL.dll" и так:
Private Declare Sub MyFunction Lib "..\MyApp\MyDLL.dll"
не помогает...
Как правильно описать и вызвать самописную DLL из VB6 ?
Заранее спасибо всем ответившим
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #1
Добавлено: 16.04.07 18:10
Мне кажется дело в правах...
Номер ответа: 2
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #2
Добавлено: 16.04.07 18:17
Нет. На 6-ти машинах админские права.
На половине - пашет, на второй половине - падает.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 16.04.07 18:47
dll activeX или нет?
Номер ответа: 4
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #4
Добавлено: 16.04.07 19:04
Судя по всему - нет.
Номер ответа: 5
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #5
Добавлено: 16.04.07 19:12
Нет. Просто сборник из нескольких функций.
На некоторых машинах помогает копирование длл-ек в директорий, доступный по PATH.
А на некоторых - не помогает.
Ничего не понимаю
Номер ответа: 6
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #6
Добавлено: 16.04.07 19:15
А как ты запускаешь прогу? Ярлыком? Может надо в нем указать рабочую папку? Больше ничего на ум не приходит.
Номер ответа: 7
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #7
Добавлено: 16.04.07 19:17
В Фаре даблкликаю по экзешке
Номер ответа: 8
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #8
Добавлено: 17.04.07 11:15
Методом научного тыка, обнаружилось, что
на компах, где стоит/стоял VB6 - все ок,
а там, где VB6 не установлен - dll-ка в упор не находится.
И что дальше ?
Что надо зарешать на компе без установленного VB6, чтобы экзешка находил рядом_лежащую dll ?
ЗЫ. MSVBVM60.dll - ответ неправильный, она есть
Номер ответа: 9
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #9
Добавлено: 17.04.07 12:17
Сделай сетап и не мучайся.
А можешь попробовать программу OLEDep. Она в реальном времени показывает, какие библиотеки пользует твоя прога.
Номер ответа: 10
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #10
Добавлено: 17.04.07 13:25
Помимо MSVBV60.DLL, ВБшные проги могут использовать и другие ДЛЛки, например какие-нибудь из этих MSWINSCK, MSCOMCT2, RICHTX32, COMCT332, Comdlg32, MSINET, comctl32, Mscomctl (если к проекту подключены какие-нибудь дополнительные контролы)
Номер ответа: 11
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #11
Добавлено: 17.04.07 13:43
Да это понятно.
Что интересно:
если на той машине, где все работает удалить эту dll - то выдается ошибка: 53 File not found
А на той машине, где dll-ка не видится, - выдается другая ошибка: 48 File not found
Не 53, а 48 !
Имхо, дело в VB-движке...
Номер ответа: 12
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #12
Добавлено: 17.04.07 13:46
Dll-ка то наСИльная? может мфк надо... Хрен знает...
Номер ответа: 13
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #13
Добавлено: 17.04.07 13:52
На которых компах не идет, там какая ось?
Номер ответа: 14
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #14
Добавлено: 17.04.07 13:57
Для чистоты эксперимента прогу (exe+dll) положил на сервер в сетевую папку.
Запускаю с одной машины - все ок.
Со второй - 48 File not found
Запускаю прямо из сетевой папки с (как видите) двумя разными результатами.
На обеих машинах - XP professional SP2
DLL написана на C. Впрочем, с такой же dll на Delphi - теже проблемы
Номер ответа: 15
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #15
Добавлено: 17.04.07 15:23
Приходит мысль что библиотека с чем-то повязана...