Написание Proxy на C#

Автор Soultaker, 12.01.26, 13:12:00

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Soultaker

Цитата: Chipollino от 14.01.26, 12:57:58Это примерно как токарь будет предъявлять конструктору, что в чертеже нет инструкции запуска и ремонта его станка на котором деталь делать будут ...
Конструктор, как так получилось, что регистрируется CommonModel64, соответственно 64 бита, а LoodsmanIntegrator идёт под 32 бита? И если ставишь в проекте C++ целевую платформу х86, то соответственно ничего не компилируется, а если ставишь х64, то ЛОЦМАН ругается, что приложение не является WIN32. Поведай мне, токарю с базовыми знаниями.
Ещё подождём Вашего дружка p3452, он тоже обещал пояснять за мою некомпетентность.

Chipollino

Цитата: Soultaker от 14.01.26, 14:17:26Я же говорю, Вы меня посчитали за тупого. Вы сами то добавляли этот тэг?

visual studio - How to build a DLL with custom file extension in a C# project? - Stack Overflow
В приложении есть скрин. Если я советую то, чего не пробовал, то так и пишу.

Цитата: Soultaker от 14.01.26, 14:32:14Милок, где в справке написано, что на C# мне надо экспортировать функции?
Их просто надо экспортировать, об этом в справке написано.

Цитата: Soultaker от 14.01.26, 14:32:14Что интересно, если писать плагин для ЛОЦМАН, то там не надо экспортировать функции. Видимо плагины для ЛОЦМАН могут писать низкоквалифицированные специалисты.
Их и там надо экспортировать, только в примере который Вы взяли за основу всё уже написано за Вас. Читайте справку внимательно.

Цитата: Soultaker от 14.01.26, 14:43:27Конструктор, как так получилось, что регистрируется CommonModel64, соответственно 64 бита, а LoodsmanIntegrator идёт под 32 бита? И если ставишь в проекте C++ целевую платформу х86, то соответственно ничего не компилируется, а если ставишь х64, то ЛОЦМАН ругается, что приложение не является WIN32. Поведай мне, токарю с базовыми знаниями.
Я не знаю, что делали Вы, но из личного опыта написания прокси для Word и Excel на C++ у меня таких проблем не было. Интеграторы написаны и успешно используются.
Ставить диагноз по фотографии я не буду. Хотите помощи - хотя бы свой проект опубликуйте для наглядности настроек.

Цитата: Chipollino от 14.01.26, 12:57:58P.S.
Я изначально не считаю собеседников тупыми если они не докажут обратное
И похоже Вы поставили себе такую цель?

Soultaker

Цитата: Chipollino от 14.01.26, 16:48:21visual studio - How to build a DLL with custom file extension in a C# project? - Stack Overflow
В приложении есть скрин. Если я советую то, чего не пробовал, то так и пишу.
Сударь, то что Вы попробовали создать пустой проект это хорошо. Только, что делать с пустым проектом? Вы думаете я просто так скинул лог ошибки? Вы забыли про экспорт функций?

Цитата: Chipollino от 14.01.26, 16:48:21Их просто надо экспортировать, об этом в справке написано.
Интересный у Вас скрин. Где Вы нашли этот файл справки? У нас ни в папке SDK/Integrator ни в COD/Doc/ЛОЦМАН Интегратор нет такой справки.

Цитата: Chipollino от 14.01.26, 16:48:21Их и там надо экспортировать, только в примере который Вы взяли за основу всё уже написано за Вас. Читайте справку внимательно.
Их и в других ПО с API на C/C++ нужно экспортировать. Я не просто так задавал вопрос о том, для чего придумали экспортные функции. В последствии, когда разрабатывали C# придумали другой механизм подключения динамических библиотек.

Цитата: Chipollino от 14.01.26, 16:48:21Я не знаю, что делали Вы, но из личного опыта написания прокси для Word и Excel на C++ у меня таких проблем не было. Интеграторы написаны и успешно используются.
Ставить диагноз по фотографии я не буду. Хотите помощи - хотя бы свой проект опубликуйте для наглядности настроек.
Решил проблему добавив атрибуты.
#import "libid:04026FE3-4B59-4838-9C9D-7488D7562B52" no_namespace raw_interfaces_only
#import "libid:4BF79394-42C3-4459-BC49-E1F1CD44AE6C" no_namespace raw_interfaces_only

Цитата: Chipollino от 14.01.26, 16:48:21И похоже Вы поставили себе такую цель?
Моя цель, чтобы ПО было грамотно написано. А в том же АСКОН разработчики различного ПО всё пишут по разному. Да что говорить. В том же ЛОЦМАН видно, что разные части интерфейса писали разные люди. Разработчики ЛОЦМАН по криворукости переплюнули разработчиков КОМПАС.

Kolos

Справка от старых версий и была она лучше.
+ Благодарностей: 1

Soultaker

Цитата: Kolos от 15.01.26, 09:26:28Справка от старых версий и была она лучше.
То есть АСКОН опять подложили мне свинью, а у меня рвётся пукан от недостатка инфы?

Soultaker

Специально для Chipolino, человека который понимает архитектуру ПО с полуслова и может реализовать что угодно.
Screenshot 2026-01-15 113317.png

Soultaker

Но опять у нас документация отличается.

Soultaker

Разобрался я с документацией. А теперь по полочкам.

ЦитироватьПрокси – это модули интегратора, получающие команды от диспетчера, выполняющие определённые действия с документами посредством систем проектирования и возвращающие результаты диспетчеру.
Открываю "Основные понятия" и ищу кто такой "Диспетчер". Ничего не нахожу. Смотрю на картинку из раздела "Cтруктура интегратора":

loodsmanintegration.png

и не вижу тут диспетчера. Как и не вижу IModel.

ЦитироватьПрокси являются посредниками между инвариантной объектной логикой интегратора и моделью системы проектирования, которая в общем случае оригинальна для каждой такой системы. Основной задачей каждого прокси является преобразование этой оригинальной модели к интеграторной логике и обратно.
Вот завернули "Инвариантная объектная логика интегратора". Зачем пользователю знать, что логика внутри ЛОЦМАН не меняется? Да это подразумевается само собой.

Цитироватьи моделью системы проектирования
Хотя ЛОЦМАН сам отдаёт модель и принимает её  :um:

ЦитироватьОсновной задачей каждого прокси является преобразование этой оригинальной модели к интеграторной логике и обратно.
А я думал, что входные и выходные трансляторы отвечают за преобразование модели.

ЦитироватьДиспетчер обменивается информацией с прокси посредством протокола вызовов прокси.
Мощнейший тезис.

ЦитироватьПрокси обменивается информацией с системой проектирования тем способом, который предоставлен данной системой проектирования, или наиболее удобным из нескольких предоставленных. Это может быть и COM-технология, и вызовы функций, и что-то другое.
Разработчики ЛОЦМАН Proxy не удосужились описать как настраивать окружение для разработки и отладки Proxy под ЛОЦМАН, но зато в этом абзаце включили КО.

Цитироватьи что-то другое.
Например танцы с бубном.

ЦитироватьТехнически, прокси – это динамически подключаемая библиотека (dll), экспортирующая несколько функций, которые составляют протокол вызовов прокси. Эти функции вызываются диспетчером.
А физически и химически прокси что такое?

Цитироватьэто динамически подключаемая библиотека (dll), экспортирующая несколько функций
Написано так как будто ЛОЦМАН за меня берёт на себя обязанности по экспорту этих функций.

Переходим в раздел "Описание функций прокси":
ЦитироватьПрокси экспортирует пять функций:
Опять прокси что-то за меня делает. По крайней мере так обещают в хелпе.

Student2025

Soultaker, вас унесло куда то в сторону..

Главный изначальный Ваш вопрос -
Цитата: Soultaker от 12.01.26, 13:12:00Как вести отладку?

Некоторые инструменты имеют графическое представление связей.
Цепочку вызовов можно отследить! Причем в любезной Вам форме!

Когда то некое CAD или GAD (можно и так сказать) выложила недокументированное API по своему модулю и это не помешало другим CAD использовать этот модуль. Значит инструменты есть ?