Здравствуйте!
Есть ли возможность обратной связи из приложения в Axioma.GIS?
Ситуация: Есть кнопка на панели Axioma.GIS при нажатии на которую запускается приложение (из dll). Необходимо по нажатию кнопки в этом приложении выполнить определенные действия в запустившей его Axioma.GIS.
Допустим в Mapinfo, с помощью интерфейса IDispatch, можно подключиться к экземпляру MapInfo из которого была запущена dll.
Здесь же, как я понял COM-объектов нет и скорее всего такое провернуть не получится..
Обратная связь
Re: Обратная связь
Как самое простое решение - это сделать так, чтобы приложение из dll генерировало команды на Питоне, а уже из Питона (который идёт вместе с Аксиомой) исполнять эти команды функцией eval.
Более надёжное решение - написать обёртки для взаимодействия вашей dll с Питоном с помощью какого-нибудь генератора типа SWIG/SIP/Boost.Python/ и т.п.
На каком языке написана ваша dll ? Для решения этой задачи по взаимодействию с Аксиомой по-любому без дополнительной прослойки на Питоне не обойтись.
Более надёжное решение - написать обёртки для взаимодействия вашей dll с Питоном с помощью какого-нибудь генератора типа SWIG/SIP/Boost.Python/ и т.п.
На каком языке написана ваша dll ? Для решения этой задачи по взаимодействию с Аксиомой по-любому без дополнительной прослойки на Питоне не обойтись.
Re: Обратная связь
Dll написана на c#. Я собственно и использую pythonnet для запуска кода питона из dll для других инструментов.
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..
Re: Обратная связь
Добрый день.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: Обратная связь
Добрый день!
Пока сделаю через "универсальный интерфейс", а дальше посмотрим..
Спасибо!
Это прекрасно.. но нет времени.c# Dll , как я понимаю из описания pythonnet можно вызвать из python.
Calling .NET code from Python
Python for .NET allows CLR namespaces to be treated essentially as Python packages.
Пока сделаю через "универсальный интерфейс", а дальше посмотрим..
Спасибо!