powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ActveX DLL и "обычные" DLL - отличия
31 сообщений из 31, показаны все 2 страниц
ActveX DLL и "обычные" DLL - отличия
    #32975207
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для нужд 1С-программиста разработали в VB6 библиотеку ActiveX для доступа к данным (с объектами, коллекциями - полным ООП-набором). Однако использовать эту библиотеку 1с'овец не смог (ну, о его кваллификации заводить разговор не будем - кваллификация так себе). Меня интересует, в чем отличие библиотек ActiveX DLL от "обычных"dll.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32975313
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если просто то, если ActiveX - то надо в проге создавать объект, если DLL - то через Public Declare и т.д. На васике DLL не создаются. Т.е. ActiveX - это объект, как вы писали, а DLL - набор функций. Раньше лет так 10 назад, когда из васика надо было вызывать сложные API, то я на borland pascal рисовал DLL c удобной оберткой для дальнешей работы из васика.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32975507
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeесли просто то, если ActiveX - то надо в проге создавать объект, если DLL - то через Public Declare и т.д.
Если не возражаете, то именно "и т.д." меня и интересует. То, что Вы говорите, относится к особенностям использования в IDE. А меня больше волнуют различия в принципе действия, которые могут ограничить использование ActiveX ну, например, в 1С. Другими словами, куда показать пальцем нашему 1С-программисту (мучается же, бедняга :)).
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976034
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeНа васике DLL не создаются.
Раньше лет так 10 назад...На VB6 (Visual Studio 98 ) создаются и ActiveX, и просто DLL.
Об Access'е не скажу - не пробовал, а в VBA созданную DLL подключаю в проект через Tools/References без проблем.
В Object Browser видны все методы, свойства и события (см. аттачмент).
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976056
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor big-dukeНа васике DLL не создаются.
Раньше лет так 10 назад...На VB6 (Visual Studio 98 ) создаются и ActiveX, и просто DLL.
Это как ?
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976091
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov Это как ?См. обеденную почту...
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976092
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, и я хочу на vb6 создать настоящую dll :)
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976160
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Big-Duke:
А у вас обед ещё не закончился?
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976207
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor
На VB6 (Visual Studio 98) создаются и ActiveX, и просто DLL.


Просто dll на бейсике это и есть ActiveX dll, или, если угодно, COM, других он делать не умеет.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976226
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor Alexey Kudinov Это как ?См. обеденную почту... Пока ничего нет. А не об этом ли идет речь ?
Но это сторонняя утилита, а интересует создание стандартной DLL именно средствами VB 6
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976281
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy Просто dll на бейсике это и есть ActiveX dll, или, если угодно, COM, других он делать не умеет.Цитата из:
Петруцос Э., Хау К.
Visual Basic 6 и VBA для профессионалов - СПб: Издательство "Питер", 2000
Стр.102, второй абзац сверху:
...элементы ActiveX, в отличие от классов, обладают визуальным интерфейсом...
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976297
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov Пока ничего нет.Адрес взят из Вашего профиля...
Письмо отправлено в 12.38 "по Киеву"
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976317
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Processor
Не путайте ActiveX dll и ActiveX control (осх)
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976321
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProcessorАдрес взят из Вашего профиля...
Письмо отправлено в 12.38 "по Киеву" Спасибо. Жду.
...элементы ActiveX, в отличие от классов, обладают визуальным интерфейсом... очень странная цитата. При чем тут классы ???
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976342
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexey Kudinov
Все что делает эта соторняя утилита для создания полноценной библиотеки экспортирующей фунции - изменяет параметры передаваемые компилятору а также создает .def файл. Трюк в том что VB изпользует старый сишный компилятор(c2), вполне способный клепать библиотеки, его функциональность искуственно ограничена в самой среде. Я подобное уже делал своими срдствами, без этой утилиты, хотя она конечно удобнее :).
Если нужно могу прислать подробнуые инструкции.
Кстати, где-то здесь я, нечто подобное, кажется уже выкладывал.

Magnus
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976441
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Magnus232 Alexey Kudinov
Все что делает эта соторняя утилита ... Трюк в том что VB изпользует старый сишный компилятор(c2), вполне способный клепать библиотеки, его функциональность искуственно ограничена в самой среде...
Да, это известный факт. Меня интересовала возможность сделать обычную библиотеку средствами самого VB 6, оставаясь в рамках среды.

Простой пример.
_Средствами VB 6_ нельзя написать VBS скрипт, т.к. среда самостоятельно добавляет в файлы "лишнюю" информацию.

Пример: создается модуль module1, в котором пишется
Код: plaintext
1.
2.
Dim a
a = "vbs"
MsgBox a
вполне валидный vbs код.
Если этот модуль сохранить как module1.vbs и сразу же запустить на исполнение, то произойдет ошибка
---------------------------
Windows Script Host
---------------------------
Script: C:\Module1.vbs
Line: 1
Char: 1
Error: Type mismatch: 'Attribute'
Code: 800A000D
Source: Microsoft VBScript runtime error

---------------------------
OK
---------------------------
, т.к. в файле написано
Код: plaintext
1.
2.
3.
4.
Attribute VB_Name = "Module1"
Dim a
a = "vbs"
MsgBox a
Разумеется выделенную строку можно закоментировать/убрать и даже написать для этого спец. утилиту :), но это уже не "штатная" для VB6 операция
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976469
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе путайте ActiveX dll и ActiveX control (осх)Мы уклоняемся от темы.
Nibbles пишет:Для нужд 1С... разработали в VB6 библиотеку ActiveX... Меня интересует, в чем отличие библиотек ActiveX DLL от "обычных"dll.Т.к. в 1С используется диалект VB, то и механизм использования библиотеки, по идее, не должен сильно отличаться от аналогичного в VBA.
Big-duke ему правильно ответил.
А второй вопрос Nibbles:куда показать пальцем нашему 1С-программистукак-то повис в воздухе, хотя, IMHO, вопрос риторический:То, что Вы говорите, относится к особенностям использования в IDE. А меня больше волнуют различия в принципе действия, которые могут ограничить использование ActiveX ну, например, в 1С.С 1С я не работал, поэтому однозначный ответ дать не могу...
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32976486
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexey Kudinov
:), просто по твоим вопросам мне показалось что ты не в курсе этого трюка.

Magnus
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32979652
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NibblesДля нужд 1С... разработали в VB6 библиотеку ActiveX... Меня интересует, в чем отличие библиотек ActiveX DLL от "обычных"dll.
1C говорит открытым текстом:
"В качестве средств разработки внешней компоненты могут применяться
Microsoft Visual C++, Microsoft Visual Basic 5.0, Borland Delphi 3.0. и др. "
Важно только соблюдение GUID's стандартных интерфейсов
Ответ на второй вопрос Nibbles: меня больше волнуют различия в принципе действия, которые могут ограничить использование ActiveX ну, например, в 1С. тоже косвенно есть на сайте 1С:
компонент должен иметь сертификат "Совместимо! Система программ 1С:Предприятие".
Только после этого нужно заводить разговор "о его кваллификации - кваллификация так себе"...
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32979655
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor
"В качестве средств разработки внешней компоненты могут применяться
Microsoft Visual C++, Microsoft Visual Basic 5.0, Borland Delphi 3.0. и др. "
Важно только соблюдение GUID's стандартных интерфейсов
Гм. Я не специалист по 1С, но по ссылке написано: 1.2 Опыт
1.2.1. АРХИВАЖНО!!! GUID's всех стандартных интерфейсов которые экспортируются компонентой должны равнятся GUID's указанных в примерах.
IInitDone={AB634001-F13D-11D0-A459-004095E1DAEA}
IPropertyBag={55272A00-42CB-11CE-8135-00AA004BB851}
IPropertyProfile={AB634002-F13D-11D0-A459-004095E1DAEA}
IAsyncEvent={AB634004-F13D-11D0-A459-004095E1DAEA}
ILanguageExtender={AB634003-F13D-11D0-A459-004095E1DAEA}
IStatusLine={AB634005-F13D-11D0-A459-004095E1DAEA}
IExtWndsSupport={EFE19EA0-09E4-11D2-A601-008048DA00DE}
В VB6 _стандартными средствами_ невозможно контролировать _значения_ GUID-ов интерфейсов. Можно только контролировать изменяются ли они (через version compatibility)
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32979669
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KudinovВ VB6 _стандартными средствами_ невозможно контролировать _значения_ GUID-ов интерфейсов. Можно только контролировать изменяются ли они (через version compatibility) А на практике это означает, что разработчикам библиотеки придется найти ActiveX, в котором задекларированы эти инт-сы с "правильными" UID-ами и в свойствах проекта (Version Compatibility-> Binary Compatibility ) указать этот ActiveX как параметр
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32979778
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov Alexey KudinovВ VB6 _стандартными средствами_ невозможно контролировать _значения_ GUID-ов интерфейсов. Можно только контролировать изменяются ли они (через version compatibility) А на практике это означает, что разработчикам библиотеки придется найти ActiveX, в котором задекларированы эти инт-сы с "правильными" UID-ами и в свойствах проекта (Version Compatibility-> Binary Compatibility ) указать этот ActiveX как параметр

думаю, это не совсем так.

я тоже не специалист в 1С. И никогда не писал для него компонентов.
Однако то, что написано в цитате «Архиважно» вполне однозначно прочитываю следующим образом.

1)DLL в VB должна быть реализована именно как ActiveX DLL и никак иначе,
( ну, наверно, ActiveX EXE тоже сгодится, но никак не «стандартная» DLL…)

2) перечисленные GUID должны быть явно оформлены (объявлены) ЛИБО в специально для написания таких компонентов созданном описателе типов TLB, ЛИБО в какой-то из стандартных 1С-ных DLL-лей, ссылка на которую (DLL/TLD) должна присутствовать
в VB проекте на этапе компиляции.

Если используется TLB, то не нужно включать его в в распространяемую версию своей VB-шной ACTIVEX DLL. На клиенте с уже установленным 1C он (этот TLB) просто не нужен. Если DLL, то тоже не нужно, так как она должна быть установлена при установке 1С.

3) Заявленные интерфейсы обязательны к реализации (Implements) в класс-е/-ах созданной VB-шной DLL. Именно за них будет дергать Ваш компонент-проект 1С, инициализируя Ваш компонент и «вживляя» его в свою среду.
И, если эти интерфейсы не реализованы, то стучаться 1C в вашем проекте не к чему.

Эти интерфейсы по существу образуют протокол взаимодействия 1С c вашей DLL.
Не зная этого протокола (набора ожидаемых 1С интерфейсов и способа их использования в 1C / реализации в VB - проекте), как будто нет причины усаживаться за написание «компонента».

Так мне кажется…
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32980107
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VictoshaНе зная этого протокола (набора ожидаемых 1С интерфейсов и способа их использования в 1C / реализации в VB - проекте), как будто нет причины усаживаться за написание «компонента».

Протокола взаимодействия между Access и ActiveX-библиотекой я тоже не знаю (как и протоколоа взаимодействия между ней и VC++). Но это не мешает мне эти библиотеки создавать. Ладно, я понял - обращусь к тем, кто уже делал DLL на VB для 1С.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32980188
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibbles VictoshaНе зная этого протокола (набора ожидаемых 1С интерфейсов и способа их использования в 1C / реализации в VB - проекте), как будто нет причины усаживаться за написание «компонента».

Протокола взаимодействия между Access и ActiveX-библиотекой я тоже не знаю (как и протоколоа взаимодействия между ней и VC++). Но это не мешает мне эти библиотеки создавать. Ладно, я понял - обращусь к тем, кто уже делал DLL на VB для 1С.
а зачем его знать - COM, он и в Африке COM.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32980313
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hibernateа зачем его знать - COM, он и в Африке COM.... в Африке обувь со шнурками, наверное, используется гораздо реже, чем без них.
А программисту надо знать, за какие шнурки надо дёргать, чтобы ентот самый СОМ упаковать для той же 1С.
Может, спецы по VB.NET сделают ретроспективный реинжиниринг этого кода
и найдут ту ниточку, потянув за которую nibbles встроит требуемый GUID в свою DLL?
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32980504
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor... ту ниточку, потянув за которую nibbles встроит требуемый GUID в свою DLL Не она ли это?: MSDNClass identifiers (CLSIDs)
Each createable class has a unique CLSID (for example, {2A3631E2-35F3-11D1-AD18-0020781019CA}) associated with it. When the component is registered on a machine, the CLSID is written out to the system registry. The CLSID is used to request that COM create an instance of your class. When a project (for example, Client A) that references your project (Server B) is compiled, the CLSIDs of your classes are stored in the compiled application (Client A). When a New <YourObjectName> statement is executed in the application, the stored CLSID (in Client A) is used to request that COM create the object (in Server B).

Example:

Dim objXL as Excel.Application
Set objXL = New Excel.Application 'Asks the OS to create the object with the CLSID {00024500-0000-0000-C000-000000000046}
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32980684
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibblesЛадно, я понял - обращусь к тем, кто уже делал DLL на VB для 1С. Самое разумное решение
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32981813
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibblesЛадно, я понял - обращусь к тем, кто уже делал DLL на VB для 1С.И раздобудь пособие 1С "Технология создания внешних компонент".
Её содержательная часть - всего 38 стр. - заканчивается следущими словами:
Также можно рекомендовать различные книги...(например, серии "...для чайников"...)Так что не унывай!
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32981993
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor nibblesЛадно, я понял - обращусь к тем, кто уже делал DLL на VB для 1С.И раздобудь пособие 1С "Технология создания внешних компонент".
Её содержательная часть - всего 38 стр. - заканчивается следущими словами:
Также можно рекомендовать различные книги...(например, серии "...для чайников"...)Так что не унывай!

"Ай, спасибо, Айболит!"

Зря огород городили, господа - установил 1С на свой компьютер, почитал хелп по 1С, поэкспериментировал, потом пошел к коллеге и долго-долго тыкал его уже в его монитор: библиотека прекрасно работает в 1С... надо просто regsvr32 уметь пользоваться.
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32981996
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приношу извинение за отнятое время, коллеги, надо было перепроверить 1С-заказчика, а не кидаться в форум! Старая добрая истина: "Хочешь, чтоб было хорошо - сделай это сам!"
...
Рейтинг: 0 / 0
ActveX DLL и "обычные" DLL - отличия
    #32983448
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibblesпошел к коллеге и долго-долго тыкал его уже в его монитор: библиотека прекрасно работает в 1С...
надо просто regsvr32 уметь пользоваться.А коллега-то в чём виноват, чтобы тыкать его в его же монитор?
И ходить самому тоже не обязательно: достаточно сделать инсталляционный пакет...
А за "отнятое время" - спасибо! Мне было приятно и полезно познакомиться со смежной областью.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ActveX DLL и "обычные" DLL - отличия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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