Это так?
З.Ы. Где же ты, BV...
SLIM писал(а):Напал на статью BV http://sources.ru/magazine/1009/visual_c_vb_lugin.html
Все таки VB запрашивает IDispatch у библиотеки.
Это так?
З.Ы. Где же ты, BV...
BV писал(а):Думаю, тебе интереснее и полезнее будет почитать GSerg'а
[
uuid(184B306A-6EAA-4507-9A46-82C0584CD2F0),
version(1.0),
helpstring ("Component")
]
library ABC
{
[uuid(301B5C76-6F99-4570-AEBB-8EDD5D84A72F)]
coclass Slot
{
[default]interface IInputData;
}
}
Я считал что указание расположения tlb в References достаточно.
Хакер писал(а):При указании tlb в References, первая, в общем-то, как раз и регистрируется в реестре силами VB.
Каждый раз?
И что, VB каждый раз генерирует uuid для tlb?
Или VB берет ее из самой tlb?
Почему тогда пока я вручную не зарегистрировал в путь к tlb,
HKEY_CLASSES_ROOT\TypeLib
CLSID самой tlb
Если функция в сях принимает параметр типа unsigned int, какой аналог указать в IDL?
И что указать в IDL если передается тип float**?
И как будет работать с такими указателями VB?
Это тот случай, когда Object Browser или Watch показывает <unsupported variant type>?Хакер писал(а):Если функция в сях принимает параметр типа unsigned int, какой аналог указать в IDL?
Нарушаешь стандарт, это не COM-совместимый тип, нельзя.
Property CurrentViewMode As <Unsupported variant type>
Member of Shell32.ShellFolderView
Хакер писал(а):Нарушаешь стандарт, это не COM-совместимый тип, нельзя.
Технология ActiveX построена над COM и документирует некоторые вещи:
* Единый для всех способ обратиться к члену объекта по его строковому имени или проекто-совместимому идентификатору.
* Единый для всех способ получить море информации о COM-сервере.
* Единый для всех способ запросить у COM-сервера создание COM-объекта, при котором, к тому же, не трубется знать, где находится реализация COM-сервера.
Второй пункт реализован в виде tlb,Третий пункт реализован в виде фабрики классов.
Мне казалось, что IDispatch таки нужен для OLE Autamat., а не для ActiveX.
Интересно, если VB полностью построен на COM, что есть в VB, например тот же класс? Как он располагается в памяти? Какие все таки переменные хранятся в памяти.
Хакер писал(а):Нифига, TLB должна быть внутри, иначе это не то.
Хакер писал(а):В твоей голове живут вымышленные персонажи. В частности, некий Автомат, да ещё и Оле! Не будет рабочего кода, пока в голое будут жить тролли. Ну а так: OLE Automation и ActiveX это по сути одно и то же.
Хакер писал(а):Это как раз то, что не должно интересовать. Чтобы не думать об этом, собственно, вся технология и создана.
SLIM писал(а):Куча, просто масса вопросов.
Вернуться в OLE / COM / ActiveX
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6