powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вызов API
7 сообщений из 7, страница 1 из 1
Вызов API
    #38897902
apiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В vba можно описать api-функцию например так:
Код: vbnet
1.
Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Возможно ли таким способом описать свою функцию из произвольной динамической библиотеки (mylib.dll) ?
...
Рейтинг: 0 / 0
Вызов API
    #38897911
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apiz,

Можно. Только библиотеку либо надо будет регистрировать, либо указывать до неё путь, а не только имя.
Плюс к этому имеет значение язык, на котором эта библиотека написана и поддерживает ли она подобные вызовы.
...
Рейтинг: 0 / 0
Вызов API
    #38897914
Declare,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ничего регистрировать не нужно (за исключением ньюанса, ниже) !
достаточно задать имя dll с путём к ней
если путь не задан, то VB по умолчанию ищет заданную библиотеку
- в текущ.каталоге
- в каталоге Виндовз
- в системном каталоге Виндовз
- во всех каталогах, указаных в PATH
всегда в этом порядке

ньюанс:
регистрировать нужно dll написанные на VB, потому как они, по сути и не являются "библиотеками динамич.компоновки", а являются ActiveX-объектами, доступ к которым осуществляется не через Declare
...
Рейтинг: 0 / 0
Вызов API
    #38897921
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declare,ничего регистрировать не нужно
как бы я вроде тоже самое написал:
The_Pristбиблиотеку либо надо будет регистрировать, либо указывать до неё путь
Declare,ньюанс:
регистрировать нужно dll написанные на VB
The_PristПлюс к этому имеет значение язык , на котором эта библиотека написана
...
Рейтинг: 0 / 0
Вызов API
    #38897925
Declare,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristкак бы я вроде тоже самое написал:
The_Pristбиблиотеку либо надо будет регистрировать, либо указывать до неё путь
не скажите :)
правильно так:
что бы использовать ресурсы dll через Declare, нужно либо указать до неё полный путь, либо поместить эту dll в один из предопределённых каталогов (curdir, windir, system, paths)
никакого "регистрировать"

те библиотеки, которые нужно регистрировать, через Declare использовать, имхо, просто не получится
их нужно "цеплять" в референсах проекта
...
Рейтинг: 0 / 0
Вызов API
    #38897929
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declare,правильно так:
что бы использовать ресурсы dll через Declare, нужно... Согласен
...
Рейтинг: 0 / 0
Вызов API
    #38897931
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declare,

Для VB6 обычно в реестре регистрируются DLL в виде COM-сервера (ActiveX). Вызов методов возможен как через позднее связывание, через CreateObject или через ранее - установить ссылку на библиотеку типов.
Другие DLL - это библиотеки с соглашением вызовов StdCall, их функции обычно вызывают через объявление через Declare.

В интернете много примеров и необычного использования, а именно:
- Вызов функций используя LoadLibrary, GetProcAddress, CallWindowProc, FreeLibrary
- Вызов функций с соглашением Cdecl
- и много другого что требует более гибкой работы. Если нужно могу приложить то что имеется.

Автору, если функция Ваша, как я понял из описания, библиотека написана в чем?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вызов API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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