Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
dll activeX или нет?

Пытался зарегать dll через RegSvr32 - говорит, что "Зарегистрировать невозможно, нет точки входа".

Судя по всему - нет.

Ответить

Номер ответа: 5
Автор ответа:
 avkiev



ICQ: 226072 

Вопросов: 48
Ответов: 107
 Профиль | | #5 Добавлено: 16.04.07 19:12
dll activeX или нет?

Нет. Просто сборник из нескольких функций.

На некоторых машинах помогает копирование длл-ек в директорий, доступный по 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
Приходит мысль что библиотека с чем-то повязана...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам