|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||||||||
OLE(Object Linking and Embedding)?24.01.2024, 23:07. Показов 15189. Ответов 167
Здравствуйте! Приступил к изучению темы OLE, если кто-то эту тему понимает, то ему не составит труда пояснить что это за зверь такой, ну, или пояснить некоторые моменты, мелочи. Вот одна такая "мелочь"
Почему автор объявляет класс так: Кликните здесь для просмотра всего текста
Это что-то абсолютно мне не знакомое, и, если на win32 DLL-библиотека собирается, то для win64 уже нет, ругается
0
|
|||||||||||
| 24.01.2024, 23:07 | |
|
Ответы с готовыми решениями:
167
Error linking glsl Program Object Как увидеть содержание типа OLE Object с помощью Delphi-Ole Conteiner? Изменить Свойство Ole Object |
|
COM‐пропагандист
|
|
| 28.01.2024, 08:35 | |
|
0
|
|
|
2737 / 892 / 331
Регистрация: 10.02.2018
Сообщений: 2,136
|
||
| 28.01.2024, 09:07 | ||
|
Liss29, пожалуйста, выложите весь исходный проект без своих экспериментальных правок. Сложно обсуждать какие-либо ошибки не имея перед глазами всего кода.
0
|
||
|
Модератор
|
|||||||||||||||
| 28.01.2024, 10:47 | |||||||||||||||
DAlloc и, тем более про то, как он устроен, если клиент получает LPMALLOC функцией CreateAllocator(), и работает с компонентом через методы IMalloc, о котором и клиент, и сервер и так уже наслышаны откуда-то из C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\objidlbase.h?IMALLOC.H - какая-то ошибка проектирования или рефакторинга, если он используется в CALLER.C.Добавлено через 1 минуту Не по теме:
Добавлено через 16 минут DAlloc внутри IMALLOC.CPP и никому не показывать.Реализицию методов IMalloc, конструкторов, деструкторов DAlloc можно по вкусу тестуально включить внутрь определения класса inline (убрав лишние DAlloc::), или оставить снаружи, как сейчас.И никаких DECLARE_INTERFACE_ и CINTERFACE!Добавлено через 11 минут Объявление функции
IMALLOC.DLL через библиотеку импорта IMALLLOC.LIB,можно добавить в CALLER.C прямо там, где она используется.Или сделать для неё отдельный заголовочный файл, дополняющий IMALLLOC.LIB
0
|
|||||||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||
| 28.01.2024, 17:15 [ТС] | |||||
|
А как же кусок кода, который явно внесён в определение интерфейса DAlloc, разве в нём нет конструктора, деструктора, ах да, это же реализация, а не объявление ... Да, этот кусок кода закрыт макросом, но он там присутствует, не так ли.CHAP20.rar
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||||
| 28.01.2024, 17:44 [ТС] | |||||||
|
Кликните здесь для просмотра всего текста
0
|
|||||||
|
2737 / 892 / 331
Регистрация: 10.02.2018
Сообщений: 2,136
|
||
| 28.01.2024, 18:19 | ||
|
0
|
||
|
COM‐пропагандист
|
|||||
| 28.01.2024, 18:48 | |||||
|
В C++ вообще нет такой сущности как «интерфейс». Ближайший аналог — абстрактный класс с чисто виртуальными методами.
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||||||||||||
| 28.01.2024, 23:23 [ТС] | ||||||||||||
|
Кликните здесь для просмотра всего текста
![]()
0
|
||||||||||||
|
Модератор
|
|||
| 29.01.2024, 07:30 | |||
|
Добавлено через 36 минут Object Linking and Embedding, а была просто OLE.Так что тему можно было назвать "OLE ( в прошлом Object Linking and Embedding )". Если я правильно понимаю последние Постановления Президиума, то сейчас просто OLE - часть Component Object Model ( Модели COM ), а Linking and Embedding - одна из частей OLE. https://learn.microsoft.com/en... /api/ole2/
0
|
|||
|
COM‐пропагандист
|
||
| 29.01.2024, 07:56 | ||
|
Добавлено через 7 минут По поводу COM есть замечательная книга «Основы COM» Дейл Роджерсон, где буквально по кирпичикам рассказывается как с этим работать.
0
|
||
|
Модератор
|
||||||||||||||||
| 29.01.2024, 08:37 | ||||||||||||||||
|
Историческая Object Linking and Embedding не была основана на COM, потому что не было тогда никаких COM.
COM понадобился OLE2 для реализаций Win32 с раздельными адресными пространствами процессов. C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\ole.h
0
|
||||||||||||||||
|
Модератор
|
||
| 29.01.2024, 08:52 | ||
|
Материалы к книге есть на github https://github.com/tpn/inside-com В том числе ранний проект спецификации COM https://github.com/tpn/inside-... M_SPEC.RTF
0
|
||
|
Модератор
|
|
| 29.01.2024, 08:58 | |
|
А вот Inside OLE, Kraig Brockschmid "Русская Редакция" в своё время опасалась переводить.
Слишком умная книга... ![]() К тому же она была в старом MSDN: все, кому было интересно, уже прочитали. ![]() https://github.com/kraigb/InsideOLE/tree/main
0
|
|
|
2737 / 892 / 331
Регистрация: 10.02.2018
Сообщений: 2,136
|
|||
| 29.01.2024, 13:47 | |||
|
0
|
|||
| 29.01.2024, 15:28 | ||||||
|
Не по теме: Заполнение VTBL на Си для OLE без COM.
0
|
||||||
|
2737 / 892 / 331
Регистрация: 10.02.2018
Сообщений: 2,136
|
|
| 29.01.2024, 15:51 | |
|
politoto, я нигде не утверждал, что без COM нельзя совместить модули Си и С++. В коде стартового сообщения и в исходном коде архива используются очень специфичные макросы (DECLARE_INTERFACE_, STDMETHOD, THIS_) и интерфейсы (IMalloc и IUnknown). Всё это явно указывает на COM, при этом совершенно ничего в коде не указывает на OLE. Но каждый раз когда я говорю про COM автор упорно меня поправляет на тему OLE. Как я понял, все непонятки были вызваны исключительно макросами COM, поэтому я не вижу смысла говорить пока про OLE, до OLE дело ещё не дошло)
0
|
|
|
COM‐пропагандист
|
||
| 29.01.2024, 16:45 | ||
|
А в современном мире OLE 2.0 — это всего лишь надстройка над COM.
0
|
||
|
Модератор
|
||||||||||||
| 29.01.2024, 20:28 | ||||||||||||
0
|
||||||||||||
|
Модератор
|
||||||
| 01.02.2024, 09:24 | ||||||
|
32-разрядные DLL изначального OLE в 64-разрядной Windows 10 импортируют из USER32.dll уже полюбившиеся автору вопроса функции.
0
|
||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||
| 02.02.2024, 16:35 [ТС] | ||
|
А что по поводу vtbl, почему эта таблица не создаётся, если макрос DECLARE_INTERFACE_ разворачивается как С++ класс? В любом случае классы IUnknown, IMalloc абстрактные значить для них таблица виртуальных функций точно должна строиться. С этим вопросом почему то так и не разобрались(.
0
|
||
| 02.02.2024, 16:35 | |
|
Access and Excel OLE object ActiveX ole-object с Delphi на Qt Access and Excel OLE object Импорт файла из OLE Object в attachment Как вставить рисунок с OLE object таблицы EXCEL в таблицу Acces Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|