Получение версии КОМПАС

Автор Lemieux, 16.08.24, 14:52:52

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

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

Lemieux

Всех приветствую.
Как в API получить версию КОМПАС?  8-)

lavgirb

Цитата: Lemieux от 16.08.24, 14:52:52Всех приветствую.
Как в API получить версию КОМПАС?  8-)
GetSystemVersion
+ Благодарностей: 2

Михаил88

application_name = application.ApplicationName(True)
+ Благодарностей: 1

Lemieux

Цитата: Михаил88 от 16.08.24, 15:49:13application_name = application.ApplicationName(True)
Спасибо, архитекторы API КОМПАС как всегда. Мне интересно, это они как-то странно думают или я.

feron

#4
Цитата: Lemieux от 16.08.24, 14:52:52Как в API получить версию КОМПАС?  8-)

Если вы пишите приложение для пользователей - тут нужен комплексный подход.. тк ввиду того что пользователь не знает проблем совместимости и установит несколько версий К. Чекнуть пути будет не лишним. Понять логику взаимодействия с не зарегистрированными (предыдущими установками) К. Ну и чекнуть порты тоже будет не лишним. Т.к. конечная версия установки и запущенная версия мб не одно и тоже.

Golovanev

Цитата: Lemieux от 16.08.24, 16:05:27Спасибо, архитекторы API КОМПАС как всегда. Мне интересно, это они как-то странно думают или я.

При чем здесь Api Компас? Странно тут думает Михаил88.... Правильный ответ GetSystemVersion.

feron

Цитата: Golovanev от 18.08.24, 01:28:50GetSystemVersion

"По канонам удобства пользователей" -> к нему надо "прийти"
на данный момент я различаю 3 уровня подхода к нему...

Golovanev

В Delphi

Uses
   Libtool;

var
  iMajor, iMinor, iRelease, iBuild : Integer;
begin

  ksGetSystemVersion( iMajor, iMinor, iRelease, iBuild);

end;

UU

Цитата: Golovanev от 18.08.24, 08:49:40В Delphi

Uses
   Libtool;

var
  iMajor, iMinor, iRelease, iBuild : Integer;
begin

  ksGetSystemVersion( iMajor, iMinor, iRelease, iBuild);

end;

Используется API экспортных функций, так быстрее.

Lemieux

Экспортные функции только в C++? Если нет, то как использовать в C#?

Lemieux

Цитата: Golovanev от 18.08.24, 01:28:50При чем здесь Api Компас? Странно тут думает Михаил88.... Правильный ответ GetSystemVersion.
Такое свойство существует? - Существует. Зачем его сделали и дали такое имя?

UU

Цитата: Lemieux от 19.08.24, 08:06:16Экспортные функции только в C++? Если нет, то как использовать в C#?
Экспортные функции для C++ описаны в модуле LIBTOOL.H, для Delphi в модуле LibTool.pas, используется kAPI2D5.dll из папки Bin Компас-3D.
Если Вы можете подключить kAPI2D5.dll из своего приложения, то напишите свой модуль для взаимодействия для тех функций которые Вам нужны.
+ Благодарностей: 1

Lemieux

Цитата: UU от 20.08.24, 08:48:04Экспортные функции для C++ описаны в модуле LIBTOOL.H, для Delphi в модуле LibTool.pas, используется kAPI2D5.dll из папки Bin Компас-3D.
Если Вы можете подключить kAPI2D5.dll из своего приложения, то напишите свой модуль для взаимодействия для тех функций которые Вам нужны.
Прикольно. Что-то я в хелпе не видел этой информации. Короче это просто глобальные функции. Всё понятно. kAPI2D5.dll в проект C# не подключается, из kAPI2D5COM.tlb обёртка делается, но там пустота.

p3452

Цитата: Lemieux от 20.08.24, 09:35:59Всё понятно. kAPI2D5.dll в проект C# не подключается
А зачем ЕЁ подключать (Вам охота возиться с маршалингом?), когда все эти функции доступны непосредственно от KompasObject...

Lemieux

Цитата: p3452 от 20.08.24, 15:33:52А зачем ЕЁ подключать (Вам охота возиться с маршалингом?), когда все эти функции доступны непосредственно от KompasObject...

Так у нас тут дискуссия про экспортные функции (интересно, куда их экспортируют).

Vi2

Цитата: UU от 18.08.24, 13:20:18Используется API экспортных функций, так быстрее.
С чего ты решил, что быстрее? Это такой же клиент Компаса, как и любой другой. Эти ДЛЛ грузятся в тело твоего ЕХЕ и обращаются к Компасу обычным образом. Небольшое послабление делается для ИНПРОС серверов, которые грузятся в сам Компас, так для них также нет маршаллинга, как и для ДЛЛ с экспортными функциями.

UU

Цитата: Vi2 от 21.08.24, 22:44:25С чего ты решил, что быстрее? Это такой же клиент Компаса, как и любой другой. Эти ДЛЛ грузятся в тело твоего ЕХЕ и обращаются к Компасу обычным образом. Небольшое послабление делается для ИНПРОС серверов, которые грузятся в сам Компас, так для них также нет маршаллинга, как и для ДЛЛ с экспортными функциями.
А с чего ты решил, что я exe пишу?

Vi2

Цитата: UU от 22.08.24, 02:17:48А с чего ты решил, что я exe пишу?
А без разницы, что ты пишешь - инпрос библиотека не даст выигрыша в скорости, а лишь в возможном удобстве. Например, выполнением некоторых необходимых действий, как говорится, "за сценой". На это и стоит обращать внимание, а не на скорость.

Starik

#18
Цитата: UU от 22.08.24, 02:17:48А с чего ты решил, что я exe пишу?
Уважаемый UU Делаю Вам ЗАМЕЧАНИЕ
Напоминаю правила форума:
Цитировать3.4. В нашем Форуме принято обращение между участниками на «Вы». Обращайтесь к участнику на «ты» только если вы знакомы с ним лично и используете такое обращение либо если он явно дал согласие на такое обращение к нему.
+ Благодарностей: 1

UU

Цитата: Starik от 22.08.24, 09:31:42Уважаемый UU Делаю Вам ЗАМЕЧАНИЕ
Напоминаю правила форума:
Вы серьёзно?
Мне тут, тыкают, я должен на Вы называть?
Цитата: Vi2 от 21.08.24, 22:44:25С чего ты решил, что быстрее? Это такой же клиент Компаса, как и любой другой. Эти ДЛЛ грузятся в тело твоего ЕХЕ и обращаются к Компасу обычным образом. Небольшое послабление делается для ИНПРОС серверов, которые грузятся в сам Компас, так для них также нет маршаллинга, как и для ДЛЛ с экспортными функциями.