Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: как программно подключить библиотеку Добавлено: 05.05.06 14:40  

Автор вопроса:  anna53
Подскажите, как программно подключить библиотеку - всего однин файлик dll. Есть какая-нить команда типа import или include?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 trialist



Вопросов: 14
Ответов: 76
 Профиль | | #1 Добавлено: 05.05.06 15:01
Не понял вопроса. Если файл всего один то его при создании проги можно подключить, а программно... вроде как только Declare Function.
Если путь к файлу надо задавать во время работы проги то никак.

Ответить

Номер ответа: 2
Автор ответа:
 anna53



Вопросов: 4
Ответов: 4
 Профиль | | #2 Добавлено: 05.05.06 15:04
При создании можно, конечно, но дело в том, что при переносе этой проги на другую машину, она уже не работает, т.к. ей не хватает библиотеки. А про Declare Function можно поподронее?

Ответить

Номер ответа: 3
Автор ответа:
 trialist



Вопросов: 14
Ответов: 76
 Профиль | | #3 Добавлено: 05.05.06 15:10
при переносе этой проги на другую машину, она уже не работает, т.к. ей не хватает библиотеки

Библиотека переносится вместе с прогой и копируется в Windows/System32

А про Declare Function можно поподронее


Declare Function FunctionNameInDLL ";DLLName.dll" (атрибуты функции)

Библиотека в одной папке с ЕХЕ.

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 05.05.06 15:44
Полагаю, подразумевалась ActiveX библиотека, но вопрос лучше уточнить. В этом случае никаких Declare, просто эту библиотеку нужно перенести с программой и зарегистрировать.
вроде как только Declare Function.
Если путь к файлу надо задавать во время работы проги то никак.

Как это никак? А LoadLibrary?

Ответить

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



Вопросов: 4
Ответов: 4
 Профиль | | #5 Добавлено: 05.05.06 15:49
Не, это не ActiveX :-)
Спасибо, я уже сделала через declare function.
Кстати с ActiveX можно как-нить также, не регистрируя ничего? Как использовать LoadLybrary?

Ответить

Номер ответа: 6
Автор ответа:
 orakul



ICQ: ---- 

Вопросов: 0
Ответов: 2
 Web-сайт: webzheka.narod.ru
 Профиль | | #6
Добавлено: 05.05.06 16:42
Кстати с ActiveX можно как-нить также, не регистрируя ничего?

Можно зарегистрировать программно...

Ответить

Номер ответа: 7
Автор ответа:
 orakul



ICQ: ---- 

Вопросов: 0
Ответов: 2
 Web-сайт: webzheka.narod.ru
 Профиль | | #7
Добавлено: 05.05.06 16:49
Как использовать LoadLybrary

Вот пример, бесполезный, но довольно понятно иллюстрирующий принцип работы LoadLibrary

Create a new project and add this code to Form1
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Sub Form_Load()
    On Error Resume Next
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'Здесь мы попытаемся вызвать АПИ-йункцмю не декларя ее!
    Dim lb As Long, pa As Long
    'загружаем user32 в адресное пространство нашего процесса
    lb = LoadLibrary("user32";)
    'достаем адрес интересующей нас функции (SetWindowTextA)
    pa = GetProcAddress(lb, "SetWindowTextA";)
    'Вызываем SetWindowTextA-function
    CallWindowProc pa, Me.hWnd, "Hello !", ByVal 0&, ByVal 0&
    'Не забыть выгрузить user32
    FreeLibrary lb
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 anna53



Вопросов: 4
Ответов: 4
 Профиль | | #8 Добавлено: 06.05.06 09:31
Спсибо, буду разбираться. :-)

Ответить

Номер ответа: 9
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #9 Добавлено: 11.05.06 14:20
API By Name, sample in google

Ответить

Номер ответа: 10
Автор ответа:
 Vilor



Вопросов: 5
Ответов: 28
 Профиль | | #10 Добавлено: 14.06.06 23:03
Regsvr32.exe %path%library.dll? И затем можно свободно декларировать функции из свежезарегестрированной библиотеки

Ответить

Страница: 1 |

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



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