На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

prnLoadPrinter не работает в случае бесплатной лицензии

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
prnLoadPrinter не работает в случае бесплатной лицензии
 
Здравствуйте.

Краткое описание использующихся элементов:
  • У нас куплен 1113 Набор ActiveX компонентов инструментария разработчика ГИС-приложений "GIS ToolKit Free Active" (версия 12, разработка 32-x и 64-х разрядных ГИС-приложений в любой среде программирования, поддерживающей ActiveX технологию без ограничения распространения; не включает компонент отображения 3D-модели).
  • C#, windows 10, WPF, 32bit.
  • Мы пользуемся библиотеками gisuXXXXX.dll напрямую (32-битным вариантом).
Мы недавно перешли с платной версии gis toolkit 11 (требующей USB ключ) на 12ю. При этом на старте приложения я вызываю
Код
    var axfMap = new axfGisToolKit.axfMapWorkSet();
    axfMap.SetupRegime(0);
, что прекрасно работает. OCX файлы с соответствующими депендами из установленного gis toolkit для x32 зарегистрированы (axGisToolKit.ocx и axfGisToolKit.ocx). И всё работает вплоть до момента, когда мы пытаемся работать с печатью карты, вызывая метод prnLoadPrinter:
Код
    private const string GisPrint = "gisuprint.dll";
    ...
    [DllImport(GisPrint, CharSet = CharSet.Ansi)]
    public static extern int prnLoadPrinter();
    ...
    var hprinter = MapPrint.prnLoadPrinter();
Ошибка такая:
Код
    An unhandled exception of type 'System.DllNotFoundException' occurred in Server.dll
    Не удается загрузить DLL "gisuprint.dll": Не найдена указанная процедура. (Исключение из HRESULT: 0x8007007F)
Отмечу, что если не вызывать axfMap.SetupRegime(0) и запускать по сути платную версию с USB-ключом, то все прекрасно работает, в том числе и печать карты. Я подумал, что возможно axfMap.SetupRegime(0) далее тянет какие-то зависимости для gis toolkit OCX компонент, поэтому на всякий случай все их включил в проект в качестве зависимостей (чтобы они подтянули com объекты и нужные dll), однако это никак не помогло. На данный момент завис с итоговой проблемой:
  1. В платной версии работает всё.
  2. В бесплатной версии работает всё, кроме печати карты средствами gis toolkit.
Готов ответить на любые сопутствующие вопросы. Надеюсь на вашу помощь в ситуации, и заранее спасибо!

(update 14:48 11.10.2018):

Далее, наблюдаю еще одно негативное изменение при включении бесплатной лицензии через "axfMap.SetupRegime(0)": первый рендер карты посредством mapDrawImageMap происходит порядка 10ти секунд. С последующими рендерами проблем нету. Впечатление, что для первого рендера он как будто не воспринимает команду "mapSetViewType(_hMap, VT_SCREEN)". Без включения бесплатной лицензии с первого раза рендерит быстро.
Изменено: Андрей Гришин - 11.10.2018 14:52:47
 
Так же хотел бы сообщить, что мы используем только эти библиотеки:
  • gisuacces.dll
  • gisupicex.dll
  • gisuprint.dll
  • gisuselec.dll
Я попытался просто скопировать к приложению вообще все библиотеки из gislib12x32 - это не помогло.
 
Цитата
Андрей Гришин написал:
Далее, наблюдаю еще одно негативное изменение при включении бесплатной лицензии через "axfMap.SetupRegime(0)": первый рендер карты посредством mapDrawImageMap происходит порядка 10ти секунд. С последующими рендерами проблем нету. Впечатление, что для первого рендера он как будто не воспринимает команду "mapSetViewType(_hMap, VT_SCREEN)". Без включения бесплатной лицензии с первого раза рендерит быстро.

Это наталкивает на мысль о том, что у Вас два разных комплекта библиотек из разных сборок разных версий.
Задержка при открытии данных вызвана созданием пространственных индексов в памяти.
Какое-то время эта опция была включена автоматически, а в последующих версиях ее надо включать принудительно.
Справочно: создание пространственных индексов в памяти влечет задержку открытия данных (первый рендер будет позже), но последующие отрабатывают быстрее (актуально для серверных служб).

Режим работы Free ни на что, кроме непосредственного открытия данных, не влияет.
Точнее даже наоборот, влияет режим не-Free, так как в этом случае выполняется проверка наличия ключа и параметров карты, подходят ли они по демо-режим или нет.
В приложении, собранном на GTK Free, при открытии данных таких проверок не выполняется.

Цитата
Андрей Гришин написал:
Я попытался просто скопировать к приложению вообще все библиотеки из gislib12x32 - это не помогло.
Это самый правильный подход. Так как перечисленных Вами библиотек явно не достаточно, особенно если Вы вызываете визуальные диалоги из ГИС-ядра.
НО! Надо быть внимательным при этом. Нельзя смешивать библиотеки из разных сборок!!! Это может приводить к непредсказуемым ситуациям.


Проверьте Ваш ПК на предмет наличия библиотек ГИС-ядра GTK12 и их возможной доступности исполняемому приложению (см. пути).
Необходимо оставить комплект библиотек только из одной сборки. Желательно крайней - обновить можно с сайта (для  "x64" и для "x32").
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности