|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||||||||
OLE(Object Linking and Embedding)?24.01.2024, 23:07. Показов 14703. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|