|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||||||||
OLE(Object Linking and Embedding)?24.01.2024, 23:07. Показов 14662. Ответов 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‐пропагандист
|
|||||||||||||
| 13.02.2024, 05:50 | |||||||||||||
0
|
|||||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||||||||||||
| 13.02.2024, 17:33 [ТС] | ||||||||||||||
CALLER1.rar IMALLOC1.rar
0
|
||||||||||||||
|
COM‐пропагандист
|
||||||||
| 13.02.2024, 17:55 | ||||||||
0
|
||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|
| 13.02.2024, 22:00 [ТС] | |
|
0
|
|
|
Модератор
|
|||||||||||||||||||||||
| 14.02.2024, 09:06 | |||||||||||||||||||||||
DAlloc::AddRef() и DAlloc::Release() c ULONG на SIZE_T?Конечно, оно редко используется, а c++ позволяет это делать, но зачем?
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\Unknwnbase.idl
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\Unknwn.h
Не по теме:
Разве не Вы портировали с Windows 95 и на более современный c++?
0
|
|||||||||||||||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||
| 14.02.2024, 17:12 [ТС] | |||
|
0
|
|||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
|
| 14.02.2024, 18:21 | |
Сообщение было отмечено politoto как решение
Решение
Liss29, сделал такой вариант, всё собирается и работает под х86 и под х64. Исправления:
1) Переделал клиента из C++ в Си (lpVtbl->, this, &IID, extern "C") 2) Убрал файлы IMALLOC1.lib и Dalloc.h из каталога клиента 3) Экспортируемая в клиент функция CreateAllocator добавлена в Caller1.c явно без использования Dalloc.h 4) Сделал солюшен к двум проектам для компиляции из студии (у меня VC19) 5) В настройках проекта клиента прописал пути к библиотекам и подключение IMALLOC1.lib 6) В настройках солюшена прописал зависимости, что бы задать порядок компиляции проектов Всё вроде, может и ещё чего поправил, уже не помню. Если сделал не то, что хотели, то скажите, чего еще не хватает.
1
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||
| 14.02.2024, 23:04 [ТС] | ||
|
0
|
||
| 15.02.2024, 12:21 | |
|
Не по теме: Liss29, посмотрите какую-то книжку сугубо по СОМ, например "Дейл Роджерсон - основы СОМ", при условии что вы знаете на базовом уровне С++, может и поймете суть. Не знаю. СОМ адово сложная технология, я до сих пор понимаю его на уровне копи-паст, там нет логики (ну или надо понимать ООП досконально, хз).
0
|
|
|
COM‐пропагандист
|
||
| 15.02.2024, 12:44 | ||
|
СОМ — это совершенно простая технология, это всего лишь вызов функции по указателю.
0
|
||
|
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
|
|
| 15.02.2024, 17:00 | |
|
Замабувараев, любая технология, когда ее освоил, кажется простой. Но поначалу, со стороны, это адский ад. Особенно COM WMI на лоу левеле, это какой-то наркоман придумал поди.
А так, вот пример навскидку - чем отличается CLSID от IID ? Без глубокого знания ООП нереально понять (я и до сих пор не понимаю).
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||
| 15.02.2024, 18:31 | ||
|
CLSID идентифицирует реализацию. Например, может быть несколько библиотек реализующих один интерфейс, доступ к нужной библиотеке можно получить с помощью её уникального CSLID. CoCreateInstance и прочие функции загружающие библиотеки. IID идентифицирует интерфейс. Например, один объект поддерживает несколько интерфейсов, доступ к нужному интерфейсу можно получить по его уникальному IID. IUnknown::QueryInterface и многие другие функции запрашивающие нужные интерфейсы.
1
|
||
|
COM‐пропагандист
|
|||
| 15.02.2024, 18:40 | |||
|
В первом случае это число используется как номер структуры (CLSID), во втором случае это число используется как номер массива с указателями на функции (IID). Можно было бы взять 64‐битное число, но его уникальность не гарантируется, а для 128‐битного числа вероятность совпадения очень мала. Добавлено через 7 минут Технология не может быть плохой просто потому что кто‐то сделал функцию с несколькими параметрами которые возвращают указатели на структуру (массив). Я считаю, что вызывать функции по указателю (вмести имени) — это не настолько сложно, чтобы называть это адским адом и чудовищно сложным процессом.
0
|
|||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||
| 15.02.2024, 22:04 [ТС] | ||||
, а теперь оказался вон где... какой-то COM.
0
|
||||
|
COM‐пропагандист
|
|||
| 15.02.2024, 22:53 | |||
|
Вы либо явно вызываете функцию по указателю через lpVtbl, либо за вас это делает компилятор. По‐другому и быть не может. COM = VTable, а VTable = массив с указателями. Если не будет VTable, то не будет никакого COM. Добавлено через 42 минуты В этом вашем проекте ещё нет ничего специфического для COM. Проект всё ещё не выходит за рамки базового синтаксиса языка C++ стандарта 1998 года.
0
|
|||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||
| 15.02.2024, 23:19 [ТС] | ||||
|
Добавлено через 3 минуты Не по теме:
Добавлено через 6 минут Не по теме: На кой ... она(COM) нужна, если есть С++, совместимость, но разве на плюсах нельзя добиться совместимости, дак зачем этот монстр нужен, ах да, один компонент может содержать несколько интерфейсов объекты С++ такого не могут, но всё же, зачем?
0
|
||||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
|||
| 16.02.2024, 00:21 | |||
0
|
|||
|
COM‐пропагандист
|
|||
| 16.02.2024, 05:23 | |||
|
1
|
|||
|
Модератор
|
|
| 16.02.2024, 07:35 | |
|
0
|
|
| 16.02.2024, 07:35 | |
|
Access and Excel OLE object ActiveX ole-object с Delphi на Qt Access and Excel OLE object Импорт файла из OLE Object в attachment Как вставить рисунок с OLE object таблицы EXCEL в таблицу Acces Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
|
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2.
Задача: контроль уникальности строк в. . .
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|