Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы? / 11 сообщений из 11, страница 1 из 1
27.09.2006, 09:44
    #34014499
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Да так чтоб сначало проверить зарегина она или нет и если что зарегистрировать?
...
Рейтинг: 0 / 0
27.09.2006, 10:01
    #34014556
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Я делаю так:
Код: plaintext
1.
2.
Dim cLib As Object
Shell App.Path & "\ExeLib.exe"
Set cLib = CreateObject("ExeLib.Lib")
Фишка в том, что при запусе ActiveX-exe он всегда сам себя регистрирует.
Но обращаю внимание, что здесь могут быть проблемы с производительностью из-за позднего связывания, да ещё и с ActiveX-exe.
...
Рейтинг: 0 / 0
27.09.2006, 10:05
    #34014570
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Если используется раннее связывание (стоит галка в референсах), то если библиотека не зарегистрирована, то прога не запустится. А если позднее, то можно попробовать создать объект через CreateObject и при неудаче зарегистрировать.
...
Рейтинг: 0 / 0
27.09.2006, 11:18
    #34014920
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Саму дллку подключил через референсы.
Сделал примерно так:
т.е. если происходит ошибка то дллка регится и процедура main выполняется снова..
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub Main()
On Error GoTo Err:
Dim frm As New Form1
frm.Show
Exit Sub
Err:
'если DLLки не зарегистрированны то регистрируем
If Err.Number =  429  Then
Shell App.Path & "\reg.bat", vbHide
Main
End If
End Sub
Вроде работает
...
Рейтинг: 0 / 0
27.09.2006, 12:24
    #34015321
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Vw,
это варварство, извини, регистрировать ActiveX DLL через внешний BAT-ник. За регистрацию отвечает точка входа DllRegisterServer. Если библиотека лежит в пределах видимости процесса (например, в том же каталоге), то достаточно задекларировать её:
Declare Function MyDllRegisterServer Lib "MyDll.dll" Alias "DllRegisterServer" () As Long,
а потом вызвать. Если dll лежит где попало, то у Matthew Curland-а есть пример - через LoadLibrary и GetProcAddress.
...
Рейтинг: 0 / 0
27.09.2006, 12:29
    #34015342
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
блин. где ж ты раньше был..
...
Рейтинг: 0 / 0
27.09.2006, 12:50
    #34015468
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Vwблин. где ж ты раньше был..
Здесь.
...
Рейтинг: 0 / 0
28.09.2006, 00:52
    #34017405
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
marvanЯ делаю так:
[src vba]...
Shell App.Path & "\ExeLib.exe"
...

А если ExeLib.exe находится в корневом каталоге?
...
Рейтинг: 0 / 0
28.09.2006, 09:54
    #34017772
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Serge Gavrilov marvanЯ делаю так:
[src vba]...
Shell App.Path & "\ExeLib.exe"
...

А если ExeLib.exe находится в корневом каталоге?
По условию задачи она лежала в папке с приложением.
Кроме того, класть что-то в корень - не очень хороший тон.
Но если очень хочется, то

Dim fso As New Scripting.FileSystemObject
AppDisk = fso.GetDriveName(App.Path) & "\"
...
Рейтинг: 0 / 0
28.09.2006, 23:13
    #34020540
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Melkiades Serge Gavrilov marvanЯ делаю так:
[src vba]...
Shell App.Path & "\ExeLib.exe"
...

А если ExeLib.exe находится в корневом каталоге?
По условию задачи она лежала в папке с приложением.
Кроме того, класть что-то в корень - не очень хороший тон.
Но если очень хочется, то

Dim fso As New Scripting.FileSystemObject
AppDisk = fso.GetDriveName(App.Path) & "\"
А автор программы не знает, куда пользователь вздумает ее установить. Поэтому надо предусматривать различные варианты. А ваше предложение опять рассчитано на предполагаемое расположение.
...
Рейтинг: 0 / 0
29.09.2006, 09:38
    #34020950
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы?
Serge Gavrilov Melkiades Serge Gavrilov marvanЯ делаю так:
[src vba]...
Shell App.Path & "\ExeLib.exe"
...

А если ExeLib.exe находится в корневом каталоге?
По условию задачи она лежала в папке с приложением.
Кроме того, класть что-то в корень - не очень хороший тон.
Но если очень хочется, то

Dim fso As New Scripting.FileSystemObject
AppDisk = fso.GetDriveName(App.Path) & "\"
А автор программы не знает, куда пользователь вздумает ее установить. Поэтому надо предусматривать различные варианты. А ваше предложение опять рассчитано на предполагаемое расположение.
Т.е. как это не знает? App.Path как раз и возвращает искомый путь.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как бы так окуратненько подключиться к своей библиотечке находящийся в каталоге программы? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]