Страница 1 из 1

Обратная связь

Добавлено: 16 окт 2019, 10:51
pahanbl4
Здравствуйте!

Есть ли возможность обратной связи из приложения в Axioma.GIS?
Ситуация: Есть кнопка на панели Axioma.GIS при нажатии на которую запускается приложение (из dll). Необходимо по нажатию кнопки в этом приложении выполнить определенные действия в запустившей его Axioma.GIS.

Допустим в Mapinfo, с помощью интерфейса IDispatch, можно подключиться к экземпляру MapInfo из которого была запущена dll.
Здесь же, как я понял COM-объектов нет и скорее всего такое провернуть не получится..

:cry:

Re: Обратная связь

Добавлено: 16 окт 2019, 11:23
Артём
Как самое простое решение - это сделать так, чтобы приложение из dll генерировало команды на Питоне, а уже из Питона (который идёт вместе с Аксиомой) исполнять эти команды функцией eval.

Более надёжное решение - написать обёртки для взаимодействия вашей dll с Питоном с помощью какого-нибудь генератора типа SWIG/SIP/Boost.Python/ и т.п.

На каком языке написана ваша dll ? Для решения этой задачи по взаимодействию с Аксиомой по-любому без дополнительной прослойки на Питоне не обойтись.

Re: Обратная связь

Добавлено: 17 окт 2019, 09:12
pahanbl4
Dll написана на c#. Я собственно и использую pythonnet для запуска кода питона из dll для других инструментов.
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..

Re: Обратная связь

Добавлено: 18 окт 2019, 08:08
gisamap
pahanbl4 писал(а): 17 окт 2019, 09:12 Dll написана на c#. Я собственно и использую pythonnet для запуска кода питона из dll для других инструментов.
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..
Добрый день.
c# Dll , как я понимаю из описания pythonnet можно вызвать из python.
Calling .NET code from Python

Python for .NET allows CLR namespaces to be treated essentially as Python packages.

import clr
from System import String
from System.Collections import *

Мо поему есть даже примеры https://github.com/pythonnet/pythonnet/ ... ster/demo/

Re: Обратная связь

Добавлено: 18 окт 2019, 10:32
pahanbl4
Добрый день!
c# Dll , как я понимаю из описания pythonnet можно вызвать из python.
Calling .NET code from Python

Python for .NET allows CLR namespaces to be treated essentially as Python packages.
Это прекрасно.. но нет времени.
Пока сделаю через "универсальный интерфейс", а дальше посмотрим..

Спасибо!