|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||||||||
OLE(Object Linking and Embedding)?24.01.2024, 23:07. Показов 14863. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|